HTTP klijent preuzima XML kroz ispravni proxy. Sljedeći redak stvara XML čitač iz izvornog URL-a. Taj redak pokreće novo dohvaćanje umjesto parsiranja preuzetih podataka.

Za klijenta koji je već konfiguriran za željenu rutu, predajte njegov tok odgovora parseru:

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

Relevantni su prostori naziva System.Xml i System.Xml.Linq. Primjer namjerno onemogućuje DTD obradu i vanjsko razrješavanje; to nije način da se kroz isti klijent dohvate proizvoljni vanjski entiteti.

Osnovni URI čuva metapodatke o lokaciji dokumenta. Ako odobreni tijek parsiranja ili validacije ipak dohvati vanjske sheme ili druge ovisnosti, ta dohvaćanja trebaju vlastiti eksplicitni razrješivač i dizajn usmjeravanja.

Ne dijagnosticirajte drugi mrežni kvar mijenjanjem lozinke na prvom, uspješnom klijentu. Utvrdite je li parser dobio tok ili URL, a zatim dodatne resurse pratite odvojeno.

Povezani članci