Klient HTTP stáhne XML přes správnou proxy. Následující řádek vytvoří čtečku XML z původního URL. Tento řádek zahájí další načítání místo parsování stažených dat.

Pro klienta již nakonfigurovaného se zamýšlenou trasou předejte jeho stream odpovědi parseru:

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);

Příslušné obory názvů jsou System.Xml a System.Xml.Linq. Příklad záměrně vypíná zpracování DTD a externí rozlišení; není to způsob, jak stejným klientem načítat libovolné externí entity.

Základní URI zachovává metadata o umístění dokumentu. Pokud schválený pracovní postup parsování nebo validace přesto načítá externí schémata nebo jiné závislosti, tato načítání potřebují vlastní explicitní resolver a návrh směrování.

Nediagnostikujte druhou síťovou chybu změnou hesla u prvního, úspěšného klienta. Zjistěte, zda parser dostal stream, nebo URL, a potom sledujte případné další zdroje odděleně.

Související články