Der Loader von AngleSharp delegiert Downloads an registrierte Requester. Mit AngleSharp.Io hängen Sie explizit einen proxyfähigen HttpClientRequester an:

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);

Verwenden Sie diesen Kontext für die beabsichtigte OpenAsync-Navigation. Ein Endpunkt aus der HTTP-Proxy-Liste kann die WebProxy-Adresse für öffentliche Web-Downloads liefern. Halten Sie den zugrunde liegenden HTTP-Client für diese Aufgabe am Leben und geben Sie danach eigene Ressourcen frei.

WithRequesters ist eine Alternative, die die von AngleSharp.Io bereitgestellten Requester registriert. Kombinieren Sie sie nicht mit mehreren manuell konfigurierten HTTP-Requestern, es sei denn, deren Auswahl ist beabsichtigt. Ein auf einem Requester konfigurierter Proxy konfiguriert keine andere Implementierung, die für eine Anforderung ausgewählt wird.

Benutzerdefinierte Standard-Header auf http gehören zur Zielanforderung. Header-Werte, die einen Anforderungstext beschreiben, einschließlich Content-Type, sollten zu dieser Anforderung passen, statt global jedem Download aufgezwungen zu werden.

Registrieren Sie den Requester vor WithDefaultLoader, damit der Loader den beabsichtigten HTTP-Dienst nutzen kann, statt seinen Standard hinzuzufügen, wenn keiner existiert.

Ähnliche Artikel