A HTTP-ügyfél a megfelelő proxyn keresztül tölti le az XML-t. A következő sor XML-olvasót hoz létre az eredeti URL-ből. Ez a sor újabb letöltést indít a letöltött adatok elemzése helyett.

Egy már a kívánt útvonalra beállított ügyfél esetén adja át a válaszstreamjét az elemzőnek:

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

A vonatkozó névterek a System.Xml és a System.Xml.Linq. A példa szándékosan kapcsolja ki a DTD-feldolgozást és a külső feloldást; ez nem módja tetszőleges külső entitások ugyanazon az ügyfélen keresztüli letöltésének.

Az alap URI megőrzi a dokumentum helyére vonatkozó metaadatait. Ha egy jóváhagyott elemzési vagy érvényesítési munkafolyamat mégis külső sémákat vagy más függőségeket tölt le, ezekhez a letöltésekhez saját, kifejezett feloldó és útvonal-tervezés szükséges.

Ne diagnosztizáljon második hálózati hibát az első, sikeres ügyfél jelszavának megváltoztatásával. Állapítsa meg, hogy az elemző streamet vagy URL-t kapott, majd a további erőforrásokat külön kövesse.

Kapcsolódó cikkek