Alte Antworten empfehlen einen zusätzlichen SOCKS-Handler, weil sie auf einen älteren .NET-Netzwerkstack abzielen. Ein moderner unterstützter .NET-HTTP-Stack kann dokumentierte SOCKS-Proxy-URI-Schemata verwenden.

var handler = new HttpClientHandler
{
    Proxy = new WebProxy("socks5://203.0.113.10:1080"),
    UseProxy = true
};
using var client = new HttpClient(handler);

Der Endpunkt dient nur der Veranschaulichung. Die SOCKS5-Proxy-Liste bietet öffentliche Kandidaten für diese socks5-WebProxy-URI; verwenden Sie die Version, die der tatsächliche Handler unterstützt. Prüfen Sie Zielframework, Laufzeit, Plattform und den tatsächlich von der Anwendung verwendeten Handler, bevor Sie dieses Beispiel auf einen älteren .NET-Framework-Prozess anwenden.

Die aktuelle Proxy-Dokumentation von Microsoft listet socks4, socks4a und socks5. Diese Namen beschreiben das Protokollverhalten. Eine Portnummer allein wählt nicht die SOCKS-Version, und die Schreibweise socks5h von curl ist kein universelles URI-Schema, das jeder Client akzeptiert.

Konfigurieren Sie für einen authentifizierten SOCKS5-Dienst die Anmeldedaten entsprechend der vom Handler unterstützten Schnittstelle. SOCKS4 und SOCKS4a bieten nicht denselben Passwort-Authentifizierungsmechanismus.

Die Ziel-URL bleibt unverändert. Eine HTTPS-Anfrage baut weiterhin das TLS des Ziels über den Proxy-Pfad auf und verifiziert es; das Hinzufügen von SOCKS ist kein Grund, diese Verifikation zu deaktivieren.

Ähnliche Artikel