El cliente HTTP descarga el XML a través del proxy correcto. La línea siguiente crea un lector XML a partir de la URL original. Esa línea inicia otra recuperación en lugar de analizar los datos descargados.

Para un cliente ya configurado con la ruta prevista, entrega su flujo de respuesta al analizador:

using var response = await client.GetAsync(documentUri);
response.EnsureSuccessStatusCode();
using var stream = await response.Content.ReadAsStreamAsync();

var settings = new XmlReaderSettings
{
    DtdProcessing = DtdProcessing.Prohibit,
    XmlResolver = null
};
using var reader = XmlReader.Create(stream, settings, documentUri.AbsoluteUri);
var document = XDocument.Load(reader);

Los espacios de nombres relevantes son System.Xml y System.Xml.Linq. El ejemplo desactiva deliberadamente el procesamiento de DTD y la resolución externa; no es una forma de obtener entidades externas arbitrarias a través del mismo cliente.

El URI base conserva los metadatos de ubicación del documento. Si un flujo de trabajo aprobado de análisis o validación sí recupera esquemas externos u otras dependencias, esas recuperaciones necesitan su propio resolver explícito y un diseño de enrutamiento.

No diagnostiques un segundo fallo de red cambiando la contraseña del primer cliente, que funciona. Determina si el analizador recibió un flujo o una URL y luego sigue cualquier recurso adicional por separado.

Artículos relacionados