HTTP klijent preuzima XML kroz ispravni proxy. Sledeći red kreira XML čitač iz originalnog URL-a. Taj red pokreće novo dohvatanje umesto 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. Primer namerno onemogućava DTD obradu i eksterno razrešavanje; to nije način da se kroz isti klijent dohvate proizvoljni spoljni entiteti.

Osnovni URI čuva metapodatke o lokaciji dokumenta. Ako odobreni tok parsiranja ili validacije ipak dohvati spoljne šeme ili druge zavisnosti, ta dohvatanja zahtevaju sopstveni eksplicitni razrešivač i dizajn usmeravanja.

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

Povezani članci