WebRequestTimeout

HtmlLoadOptions.WebRequestTimeout property

عدد الملي ثانية التي يجب انتظارها قبل انتهاء مهلة طلب الويب. القيمة الافتراضية هي ١٠٠٠٠٠ ميلي ثانية (١٠٠ ثانية).

public int WebRequestTimeout { get; set; }

ملاحظات

عدد المللي ثانية التي ينتظرها Aspose.Words للحصول على استجابة، عند تحميل الموارد الخارجية (الصور، وأوراق style ) المرتبطة في مستندات HTML وMHTML.

أمثلة

يوضح كيفية تعيين حد زمني لطلبات الويب عند تحميل مستند يحتوي على موارد خارجية مرتبطة بعناوين URL.

public void WebRequestTimeout()
{
    // قم بإنشاء كائن HtmlLoadOptions جديد وتحقق من حد المهلة لطلب الويب.
    HtmlLoadOptions options = new HtmlLoadOptions();

    // عند تحميل مستند HTML يحتوي على موارد مرتبطة خارجيًا بواسطة عنوان URL على الويب،
    // سيقوم Aspose.Words بإلغاء طلبات الويب التي تفشل في جلب الموارد خلال هذا الحد الزمني، بالمللي ثانية.
    Assert.AreEqual(100000, options.WebRequestTimeout);

    // قم بتعيين WarningCallback الذي سيسجل جميع التحذيرات التي تحدث أثناء التحميل.
    ListDocumentWarnings warningCallback = new ListDocumentWarnings();
    options.WarningCallback = warningCallback;

    // قم بتحميل مثل هذا المستند وتأكد من إنشاء شكل يحتوي على بيانات الصورة.
    // ستتطلب هذه الصورة المرتبطة طلب ويب للتحميل، والذي يجب أن يكتمل خلال الحد الزمني لدينا.
    string html = $@"
        <html>
            <img src=""{ImageUrl}"" alt=""Aspose logo"" style=""width:400px;height:400px;"">
        </html>
    ";

    // قم بتعيين حد زمني غير معقول وحاول تحميل المستند مرة أخرى.
    options.WebRequestTimeout = 0;
    Document doc = new Document(new MemoryStream(Encoding.UTF8.GetBytes(html)), options);
    Assert.AreEqual(2, warningCallback.Warnings().Count);

    // سيظل طلب الويب الذي يفشل في الحصول على صورة ضمن المهلة الزمنية ينتج صورة.
    // ومع ذلك، ستكون الصورة عبارة عن علامة "x" الحمراء التي تشير عادةً إلى الصور المفقودة.
    Shape imageShape = (Shape)doc.GetChild(NodeType.Shape, 0, true);
    Assert.AreEqual(924, imageShape.ImageData.ImageBytes.Length);

    // يمكننا أيضًا تكوين معاودة اتصال مخصصة لالتقاط أي تحذيرات من طلبات الويب التي انتهت صلاحيتها.
    Assert.AreEqual(WarningSource.Html, warningCallback.Warnings()[0].Source);
    Assert.AreEqual(WarningType.DataLoss, warningCallback.Warnings()[0].WarningType);
    Assert.AreEqual($"Couldn't load a resource from \'{ImageUrl}\'.", warningCallback.Warnings()[0].Description);

    Assert.AreEqual(WarningSource.Html, warningCallback.Warnings()[1].Source);
    Assert.AreEqual(WarningType.DataLoss, warningCallback.Warnings()[1].WarningType);
    Assert.AreEqual("Image has been replaced with a placeholder.", warningCallback.Warnings()[1].Description);

    doc.Save(ArtifactsDir + "HtmlLoadOptions.WebRequestTimeout.docx");
}

/// <summary>
/// يخزن جميع التحذيرات التي تحدث أثناء عملية تحميل المستند في قائمة.
/// </summary>
private class ListDocumentWarnings : IWarningCallback
{
    public void Warning(WarningInfo info)
    {
        mWarnings.Add(info);
    }

    public List<WarningInfo> Warnings() { 
        return mWarnings;
    }

    private readonly List<WarningInfo> mWarnings = new List<WarningInfo>();
}

أنظر أيضا