לקוח ה-HTTP מוריד את ה-XML דרך ה-proxy הנכון. השורה הבאה יוצרת קורא 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, ואז עקוב אחרי משאבים נוספים בנפרד.

מאמרים קשורים