ਡਾਊਨਲੋਡ ਕੀਤੀ 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, ਫਿਰ ਕੋਈ ਵੀ ਵਾਧੂ ਸਰੋਤ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਟਰੈਕ ਕਰੋ।