İndirilen XML'i Akış Olarak .NET XmlReader'a Geçirme
Özgün URL'yi yeniden getirmesini istemek yerine proxy'den geçen yanıt akışını XML ayrıştırıcısına verin.
HTTP istemcisi XML'i doğru proxy üzerinden indirir. Sonraki satır özgün URL'den bir XML okuyucu oluşturur. Bu satır indirilen verileri ayrıştırmak yerine yeni bir getirme başlatır.
Amaçlanan rotayla zaten yapılandırılmış bir istemci için yanıt akışını ayrıştırıcıya verin:
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);
İlgili ad alanları System.Xml ve System.Xml.Linq'dir. Örnek, DTD işlemeyi ve dış çözümlemeyi bilerek devre dışı bırakır; aynı istemci üzerinden rastgele dış varlıkları getirmenin bir yolu değildir.
Temel URI, belgenin konum üst verilerini korur. Onaylanmış bir ayrıştırma veya doğrulama iş akışı yine de dış şemaları ya da başka bağımlılıkları getiriyorsa, bu getirmelerin kendi açık çözümleyicisine ve yönlendirme tasarımına ihtiyacı vardır.
İkinci bir ağ arızasını ilk, başarılı istemcinin parolasını değiştirerek teşhis etmeyin. Ayrıştırıcının bir akış mı yoksa URL mi aldığını belirleyin, ardından ek kaynakları ayrı ayrı izleyin.