De HTTP-client downloadt de XML via de juiste proxy. De volgende regel maakt een XML-lezer op basis van de oorspronkelijke URL. Die regel begint een nieuwe ophaalactie in plaats van de gedownloade gegevens te parsen.

Voor een client die al met de bedoelde route is geconfigureerd, geef je de responsstream aan 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);

De relevante naamruimten zijn System.Xml en System.Xml.Linq. Het voorbeeld schakelt DTD-verwerking en externe resolutie bewust uit; het is geen manier om willekeurige externe entiteiten via dezelfde client op te halen.

De basis-URI bewaart de locatiemetadata van het document. Als een goedgekeurde parse- of validatieworkflow toch externe schema's of andere afhankelijkheden ophaalt, hebben die ophaalacties hun eigen expliciete resolver en routeringsontwerp nodig.

Diagnosticeer een tweede netwerkstoring niet door het wachtwoord van de eerste, werkende client te wijzigen. Stel vast of de parser een stream of een URL heeft ontvangen en volg daarna eventuele extra bronnen afzonderlijk.

Gerelateerde artikelen