डाउनलोड किए गए XML को स्ट्रीम के रूप में .NET XmlReader को दें
मूल URL को फिर से लाने के बजाय प्रॉक्सी किए गए प्रतिक्रिया स्ट्रीम को XML पार्सर को दें।
HTTP क्लाइंट सही प्रॉक्सी के ज़रिये XML डाउनलोड करता है। अगली पंक्ति मूल URL से एक XML रीडर बनाती है। वह पंक्ति डाउनलोड किए गए डेटा को पार्स करने के बजाय एक और प्राप्ति शुरू करती है।
पहले से इच्छित मार्ग के साथ कॉन्फ़िगर किए गए क्लाइंट के लिए, उसकी प्रतिक्रिया स्ट्रीम पार्सर को दें:
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, फिर किसी भी अतिरिक्त संसाधन को अलग से ट्रेस करें।