O cliente HTTP baixa o XML pelo proxy correto. A linha seguinte cria um leitor XML a partir do URL original. Essa linha inicia outra obtenção em vez de analisar os dados baixados.

Para um cliente já configurado com a rota pretendida, entregue o fluxo de resposta dele ao analisador:

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 namespaces relevantes são System.Xml e System.Xml.Linq. O exemplo desativa deliberadamente o processamento de DTD e a resolução externa; não é uma forma de obter entidades externas arbitrárias pelo mesmo cliente.

O URI base preserva os metadados de localização do documento. Se um fluxo de trabalho aprovado de análise ou validação de fato obtém esquemas externos ou outras dependências, essas obtenções precisam de seu próprio resolver explícito e de um desenho de roteamento.

Não diagnostique uma segunda falha de rede alterando a senha no primeiro cliente, que funciona. Determine se o analisador recebeu um fluxo ou um URL e depois acompanhe quaisquer recursos adicionais separadamente.

Artigos relacionados