Posredovanje prenesenega XML v .NET XmlReader kot tok
Posredujte proxy tok odgovora razčlenjevalniku XML, namesto da ga silite, da znova pridobi izvorni URL.
Orodje HTTP prenese XML prek pravega proxyja. Naslednja vrstica ustvari bralnik XML iz izvornega URL-ja. Ta vrstica začne novo pridobivanje namesto razčlenjevanja prenesenih podatkov.
Za odjemalca, ki je že nastavljen z želeno potjo, posredujte njegov tok odgovora razčlenjevalniku:
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);
Ustrezni imenski prostori so System.Xml in System.Xml.Linq. Primer namenoma izklopi obdelavo DTD in zunanje razreševanje; to ni način, da bi prek istega odjemalca pridobivali poljubne zunanje entitete.
Osnovni URI ohranja metapodatke o lokaciji dokumenta. Če odobren potek razčlenjevanja ali preverjanja vseeno pridobiva zunanje sheme ali druge odvisnosti, te pridobitve potrebujejo svoj izrecni razreševalnik in zasnovo usmerjanja.
Druge omrežne okvare ne diagnosticirajte s spreminjanjem gesla pri prvem, uspešnem odjemalcu. Ugotovite, ali je razčlenjevalnik prejel tok ali URL, nato pa morebitne dodatne vire spremljajte ločeno.