Send nedlastet XML til .NET XmlReader som en strøm
Gi XML-parseren den proxyede svarestrømmen i stedet for å be den hente den opprinnelige URL-en på nytt.
HTTP-klienten laster ned XML-en gjennom riktig proxy. Neste linje oppretter en XML-leser fra den opprinnelige URL-en. Den linjen starter en ny henting i stedet for å parse de nedlastede dataene.
For en klient som allerede er konfigurert med den tiltenkte ruten, gi svarstrømmen dens til parseren:
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);
De relevante navnerommene er System.Xml og System.Xml.Linq. Eksemplet slår bevisst av DTD-behandling og ekstern oppløsning; det er ikke en måte å hente vilkårlige eksterne enheter gjennom den samme klienten.
Basis-URI-en bevarer dokumentets plasseringsmetadata. Hvis en godkjent parse- eller valideringsarbeidsflyt faktisk henter eksterne skjemaer eller andre avhengigheter, trenger disse hentingene sin egen eksplisitte oppløser og rutedesign.
Ikke diagnostiser en andre nettverksfeil ved å endre passordet på den første, velfungerende klienten. Fastslå om parseren mottok en strøm eller en URL, og følg deretter eventuelle ekstra ressurser separat.