Odovzdanie stiahnutého XML do .NET XmlReader ako streamu
Odovzdajte proxy stream odpovede XML parseru namiesto toho, aby ste ho núrili znova načítať pôvodnú URL.
Klient HTTP stiahne XML cez správnu proxy. Nasledujúci riadok vytvorí čítačku XML z pôvodnej URL. Tento riadok spustí ďalšie načítanie namiesto parsovania stiahnutých údajov.
Pre klienta už nakonfigurovaného so zamýšľanou trasou odovzdajte jeho stream odpovede 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);
Príslušné menné priestory sú System.Xml a System.Xml.Linq. Príklad zámerne vypína spracovanie DTD a externé rozlíšenie; nie je to spôsob, ako cez toho istého klienta načítavať ľubovoľné externé entity.
Základná URI zachováva metadáta o umiestnení dokumentu. Ak schválený pracovný postup parsovania alebo validácie napriek tomu načítava externé schémy alebo iné závislosti, tieto načítania potrebujú vlastný explicitný resolver a návrh smerovania.
Nediagnostikujte druhú sieťovú chybu zmenou hesla pri prvom, úspešnom klientovi. Zistite, či parser dostal stream alebo URL, a potom sledujte prípadné ďalšie zdroje oddelene.