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, а затем отслеживайте любые дополнительные ресурсы отдельно.

Похожие статьи