Pasar o XML descargado a .NET XmlReader como fluxo
Pasa o fluxo de resposta do proxy ao analizador XML en lugar de pedirlle que volva obter o URL orixinal.
O cliente HTTP descarga o XML a través do proxy correcto. A liña seguinte crea un lector XML a partir do URL orixinal. Esa liña inicia outra recuperación en lugar de analizar os datos descargados.
Para un cliente xa configurado coa ruta prevista, entrega o seu fluxo de resposta ao 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);
Os espazos de nomes relevantes son System.Xml e System.Xml.Linq. O exemplo desactiva deliberadamente o procesamento de DTD e a resolución externa; non é unha forma de obter entidades externas arbitrarias a través do mesmo cliente.
O URI base conserva os metadatos de localización do documento. Se un fluxo de traballo aprobado de análise ou validación si recupera esquemas externos ou outras dependencias, esas recuperacións necesitan o seu propio resolutor explícito e un deseño de enrutamento.
Non diagnostiques un segundo fallo de rede cambiando o contrasinal no primeiro cliente, que funciona. Determina se o analizador recibiu un fluxo ou un URL e despois segue calquera recurso adicional por separado.