Proslijedite preuzeti XML .NET XmlReader-u kao tok
Proslijedite proxy tok odgovora XML parseru umjesto da ga tražite da ponovo dohvati originalni URL.
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.