HTTP klijent preuzima XML kroz ispravni proxy. Sljedeći red kreira XML čitač iz originalnog URL-a. Taj red pokreće novo dohvatanje umjesto parsiranja preuzetih podataka.

Za klijenta koji je već konfigurisan 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 imenski prostori su System.Xml i System.Xml.Linq. Primjer namjerno onemogućava DTD obradu i eksterno razrješavanje; to nije način da se kroz isti klijent dohvate proizvoljni vanjski entiteti.

Osnovni URI čuva metapodatke o lokaciji dokumenta. Ako odobreni tok parsiranja ili validacije ipak dohvati vanjske šeme ili druge zavisnosti, ta dohvatanja trebaju vlastiti eksplicitni razrješivač i dizajn usmjeravanja.

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

Povezani članci