ไคลเอนต์ HTTP ดาวน์โหลด XML ผ่านพร็อกซี่ที่ถูกต้อง บรรทัดถัดไปสร้างตัวอ่าน XML จาก URL เดิม บรรทัดนั้นเริ่มการดึงอีกรอบแทนที่จะแยกวิเคราะห์ข้อมูลที่ดาวน์โหลดมา

สำหรับ ไคลเอนต์ที่กำหนดค่าเส้นทางที่ต้องการไว้แล้ว ให้ส่งสตรีมการตอบกลับของไคลเอนต์นั้นให้ตัวแยกวิเคราะห์:

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

เนมสเปซที่เกี่ยวข้องคือ System.Xml และ System.Xml.Linq ตัวอย่างนี้ปิดการประมวลผล DTD และการแก้ไขภายนอกโดยเจตนา ไม่ใช่วิธีดึงเอนทิตีภายนอกใด ๆ ผ่านไคลเอนต์เดียวกัน

URI ฐานรักษาเมตาดาต้าตำแหน่งของเอกสาร หากเวิร์กโฟลว์การแยกวิเคราะห์หรือตรวจสอบที่ได้รับอนุมัติดึงสคีมาภายนอกหรือการพึ่งพาอื่นจริง การดึงเหล่านั้นต้องมีตัวแก้ไขและรูปแบบการกำหนดเส้นทางที่ชัดเจนของตนเอง

อย่าวินิจฉัยความล้มเหลวของเครือข่ายครั้งที่สองด้วยการเปลี่ยนรหัสผ่านบนไคลเอนต์แรกที่สำเร็จ ตรวจสอบว่าตัวแยกวิเคราะห์ได้รับสตรีมหรือ URL แล้วติดตามทรัพยากรเพิ่มเติมแยกต่างหาก

บทความที่เกี่ยวข้อง