A letöltött XML átadása a .NET XmlReadernek streamként
Adja át a proxyn átvitt válaszstreamet az XML-elemzőnek, ahelyett hogy az eredeti URL-t kérné le újra.
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.