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 responsstrømmen 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. Eksempelet 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.

Relaterte artikler