Загрузчик AngleSharp передаёт загрузки зарегистрированным запросчикам. С AngleSharp.Io явно подключите HttpClientRequester с поддержкой прокси:

using AngleSharp;
using AngleSharp.Io.Network;

var handler = new System.Net.Http.HttpClientHandler
{
    UseProxy = true,
    Proxy = new System.Net.WebProxy(
        "http://proxy.example.net:8080")
};
var http = new System.Net.Http.HttpClient(handler);
http.DefaultRequestHeaders.UserAgent.ParseAdd("ExampleReader/1.0");

var configuration = Configuration.Default
    .With(new HttpClientRequester(http))
    .WithDefaultLoader();

var context = BrowsingContext.New(configuration);

Используйте этот контекст для предполагаемой навигации OpenAsync. Конечная точка из списка HTTP-прокси может предоставить адрес WebProxy для публичных веб-загрузок. Поддерживайте базовый HTTP-клиент живым на время этой работы и затем освободите принадлежащие ресурсы.

WithRequesters — альтернатива, регистрирующая запросчики, доступные из AngleSharp.Io. Не сочетайте её с несколькими вручную настроенными HTTP-запросчиками, если только их выбор не намеренный. Прокси, настроенный на одном запросчике, не настраивает другую реализацию, выбранную для запроса.

Пользовательские заголовки по умолчанию на http относятся к запросу к адресату. Значения заголовков, описывающих тело запроса, включая Content-Type, должны соответствовать этому запросу, а не навязываться глобально каждой загрузке.

Зарегистрируйте запросчик до WithDefaultLoader, чтобы загрузчик мог использовать предполагаемую службу HTTP вместо добавления своей по умолчанию, когда никакой нет.

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