SOCKS-proxyer i .NET HttpClient: URI-scheman som stöds
Använd de dokumenterade SOCKS-proxy-URI-schemana för en kompatibel .NET HTTP-hanterare i stället för att anta att gamla tredjepartsrecept fortfarande behövs.
Gamla svar rekommenderar en extra SOCKS-hanterare eftersom de riktar sig mot en äldre .NET-nätverksstack. En modern .NET HTTP-stack som stöds kan använda dokumenterade SOCKS-proxy-URI-scheman.
var handler = new HttpClientHandler
{
Proxy = new WebProxy("socks5://203.0.113.10:1080"),
UseProxy = true
};
using var client = new HttpClient(handler);Slutpunkten är bara illustrativ. SOCKS5-proxylistan erbjuder offentliga kandidater för denna socks5 WebProxy-URI; använd den version som den faktiska hanteraren stöder. Kontrollera målramverket, körmiljön, plattformen och den faktiska hanterare som programmet använder innan du tillämpar det här exemplet på en äldre .NET Framework-process.
Microsofts nuvarande proxydokumentation listar socks4, socks4a och socks5. Dessa namn beskriver protokollbeteende. Enbart ett portnummer väljer inte SOCKS-versionen, och curls stavning socks5h är inte ett universellt URI-schema som alla klienter accepterar.
För en autentiserad SOCKS5-tjänst konfigurerar du autentiseringsuppgifterna enligt det gränssnitt som hanteraren stöder. SOCKS4 och SOCKS4a tillhandahåller inte samma lösenordsautentiseringsmekanism.
Destinations-URL:en förblir oförändrad. En HTTPS-begäran upprättar och verifierar fortfarande destinationens TLS via proxyvägen; att lägga till SOCKS är inte ett skäl att inaktivera den verifieringen.