Menghantar XML yang Dimuat Turun kepada .NET XmlReader sebagai Strim
Serahkan strim respons yang melalui proksi kepada penghurai XML dan bukannya memintanya mengambil semula URL asal.
Klien HTTP memuat turun XML melalui proksi yang betul. Baris seterusnya mencipta pembaca XML daripada URL asal. Baris itu memulakan pengambilan lain dan bukannya menghuraikan data yang telah dimuat turun.
Untuk klien yang sudah dikonfigurasikan dengan laluan yang dimaksudkan, serahkan strim responsnya kepada penghurai:
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);
Ruang nama yang berkaitan ialah System.Xml dan System.Xml.Linq. Contoh ini sengaja melumpuhkan pemprosesan DTD dan penyelesaian luaran; ia bukan cara mengambil entiti luaran sewenang-wenangnya melalui klien yang sama.
URI asas mengekalkan metadata lokasi dokumen. Jika aliran kerja penghuraian atau pengesahan yang diluluskan memang mengambil skema luaran atau kebergantungan lain, pengambilan itu memerlukan penyelesai eksplisit dan reka bentuk penghalaan tersendiri.
Jangan diagnosis kegagalan rangkaian kedua dengan menukar kata laluan pada klien pertama yang berjaya. Tentukan sama ada penghurai menerima strim atau URL, kemudian ikuti sebarang sumber tambahan secara berasingan.