Перадаць спампаваны 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, затым асобна абыдзіце любыя дадатковыя рэсурсы.