WebRequestTimeout
Contenido
[
Ocultar
]HtmlLoadOptions.WebRequestTimeout property
El número de milisegundos que se espera antes de que finalice el tiempo de espera de la solicitud web. El valor predeterminado es 100000 milisegundos (100 segundos).
public int WebRequestTimeout { get; set; }
Observaciones
La cantidad de milisegundos que Aspose.Words espera una respuesta al cargar recursos externos (imágenes, hojas de estilo) vinculados en documentos HTML y MHTML.
Ejemplos
Muestra cómo establecer un límite de tiempo para las solicitudes web al cargar un documento con recursos externos vinculados mediante URL.
public void WebRequestTimeout()
{
// Cree un nuevo objeto HtmlLoadOptions y verifique su umbral de tiempo de espera para una solicitud web.
HtmlLoadOptions options = new HtmlLoadOptions();
// Al cargar un documento HTML con recursos vinculados externamente mediante una URL de dirección web,
// Aspose.Words abortará las solicitudes web que no logren obtener los recursos dentro de este límite de tiempo, en milisegundos.
Assert.AreEqual(100000, options.WebRequestTimeout);
// Establezca un WarningCallback que registrará todas las advertencias que ocurran durante la carga.
ListDocumentWarnings warningCallback = new ListDocumentWarnings();
options.WarningCallback = warningCallback;
// Cargue dicho documento y verifique que se haya creado una forma con datos de imagen.
//Esta imagen vinculada requerirá una solicitud web para cargarse, la cual deberá completarse dentro de nuestro límite de tiempo.
string html = $@"
<html>
<img src=""{ImageUrl}"" alt=""Aspose logo"" style=""width:400px;height:400px;"">
</html>
";
// Establezca un límite de tiempo de espera irrazonable e intente cargar el documento nuevamente.
options.WebRequestTimeout = 0;
Document doc = new Document(new MemoryStream(Encoding.UTF8.GetBytes(html)), options);
Assert.AreEqual(2, warningCallback.Warnings().Count);
// Una solicitud web que no logra obtener una imagen dentro del límite de tiempo aún producirá una imagen.
// Sin embargo, la imagen será la 'x' roja que comúnmente significa que faltan imágenes.
Shape imageShape = (Shape)doc.GetChild(NodeType.Shape, 0, true);
Assert.AreEqual(924, imageShape.ImageData.ImageBytes.Length);
// También podemos configurar una devolución de llamada personalizada para detectar cualquier advertencia de solicitudes web con tiempo de espera agotado.
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>
/// Almacena todas las advertencias que ocurren durante una operación de carga de documento en una lista.
/// </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>();
}
Ver también
- class HtmlLoadOptions
- espacio de nombres Aspose.Words.Loading
- asamblea Aspose.Words