Pasar el XML descargado a .NET XmlReader como flujo
Pasa el flujo de respuesta del proxy al analizador XML en lugar de pedirle que vuelva a obtener la URL original.
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.