Send nedlasta XML til .NET XmlReader som ein straum
Gje XML-parsaren den proxyande svarstraumen i staden for å be han hente den opphavlege URL-en på nytt.
HTTP-klienten lastar ned XML-en gjennom rett proxy. Neste linje lagar ein XML-lesar frå den opphavlege URL-en. Den linja startar ei ny henting i staden for å parse dei nedlasta dataa.
For ein klient som alt er konfigurert med den tiltenkte ruta, gje svarstraumen hans til parsaren:
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);
Dei relevante namneromma er System.Xml og System.Xml.Linq. Dømet slår medvite av DTD-handsaming og ekstern oppløysing; det er ikkje ein måte å hente vilkårlege eksterne einingar gjennom den same klienten.
Basis-URI-en tek vare på plasseringsmetadataa til dokumentet. Viss eit godkjent parse- eller valideringsarbeidsflyt likevel hentar eksterne skjema eller andre avhengnader, treng desse hentingane sin eigen eksplisitte oppløysar og ruteteknikk.
Ikkje diagnostiser ein andre nettverksfeil ved å endre passordet på den første, velfungerande klienten. Fastslå om parsaren fekk ein straum eller ein URL, og følg deretter eventuelle ekstra ressursar kvar for seg.