El client HTTP descarrega l'XML a través del proxy correcte. La línia següent crea un lector XML a partir de l'URL original. Aquesta línia inicia una altra obtenció en lloc d'analitzar les dades descarregades.

Per a un client ja configurat amb la ruta prevista, lliura el seu flux de resposta a l'analitzador:

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);

Els espais de noms rellevants són System.Xml i System.Xml.Linq. L'exemple desactiva deliberadament el processament de DTD i la resolució externa; no és una manera d'obtenir entitats externes arbitràries a través del mateix client.

L'URI base conserva les metadades d'ubicació del document. Si un flux de treball aprovat d'anàlisi o validació sí que obté esquemes externs o altres dependències, aquestes obtencions necessiten el seu propi resolutor explícit i un disseny d'encaminament.

No diagnostiquis una segona fallada de xarxa canviant la contrasenya del primer client, el que va funcionar. Estableix si l'analitzador va rebre un flux o una URL i després segueix qualsevol recurs addicional per separat.

Articles relacionats