تمرير XML الذي تم تنزيله إلى .NET XmlReader كتدفق
مرِّر تدفق الاستجابة المار عبر الوكيل إلى محلل XML بدلًا من مطالبتِه بجلب عنوان URL الأصلي مرة أخرى.
ينزّل عميل 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، ثم تابع أي موارد إضافية بشكل منفصل.