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.

Artigos relacionados