Erofgelueden XML als Stream un .NET XmlReader weiderginn
Gitt de proxyten Äntwertstream un den XML-Parser, amplaz datt hien d'Original-URL nach eng Kéier soll ophalen.
Den HTTP-Client luet d'XML iwwer de richtige Proxy erof. Déi nächst Zeil erstellt en XML-Lieser aus der Original-URL. Déi Zeil fänkt eng aner Ofluedung un, amplaz d'erofgelueden Donnéeën ze parsen.
Fir e Client, dee schonn op der virgesiener Route konfiguréiert ass, gitt säin Äntwertstream un de Parser:
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);
Déi relevant Namespaces sinn System.Xml an System.Xml.Linq. D'Beispill deaktivéiert bewosst d'DTD-Verarbechtung an déi extern Opléisung; et ass kee Wee, fir arbiträr extern Entitéiten iwwer dee selwechte Client ze kréien.
D'Basis-URI erhält d'Metadate vum Dokument senger Plaz. Wann en approuvéierte Parsing- oder Validéierungsworkflow tatsächlech extern Schemaen oder aner Ofhängegkeeten erofuelt, brauchen déi Ofluedungen hirem eegene explizite Resolver an en eegene Routing-Design.
Diagnostizéiert keen zweete Netzwierkfehler, andeems Dir d'Passwuert um éischten, erfolgreiche Client ännert. Kuckt no, ob de Parser e Stream oder eng URL kritt huet, a verfollegt duerno all zousätzlech Ressourcen getrennt.