డౌన్లోడ్ చేసిన 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 వచ్చిందో నిర్ణయించి, తర్వాత అదనపు వనరులను విడిగా ట్రాక్ చేయండి.