SOCKS-proxy's in .NET HttpClient: ondersteunde URI-schema's
Gebruik de gedocumenteerde SOCKS-proxy-URI-schema's van een compatibele .NET HTTP-handler in plaats van aan te nemen dat oude recepten van derden nog nodig zijn.
Oude antwoorden raden een extra SOCKS-handler aan omdat ze zich richten op een oudere .NET-netwerkstack. Een moderne ondersteunde .NET HTTP-stack kan gedocumenteerde SOCKS-proxy-URI-schema's gebruiken.
var handler = new HttpClientHandler
{
Proxy = new WebProxy("socks5://203.0.113.10:1080"),
UseProxy = true
};
using var client = new HttpClient(handler);Het eindpunt is alleen illustratief. De SOCKS5-proxylijst biedt openbare kandidaten voor deze socks5 WebProxy-URI; gebruik de versie die de daadwerkelijke handler ondersteunt. Controleer het doelframework, de runtime, het platform en de daadwerkelijke handler die de toepassing gebruikt voordat u dit voorbeeld toepast op een ouder .NET Framework-proces.
De huidige proxydocumentatie van Microsoft vermeldt socks4, socks4a en socks5. Die namen beschrijven protocolgedrag. Een poortnummer alleen kiest niet de SOCKS-versie, en de spelling socks5h van curl is geen universeel URI-schema dat elke client accepteert.
Voor een geauthenticeerde SOCKS5-service configureert u referenties volgens de interface die de handler ondersteunt. SOCKS4 en SOCKS4a bieden niet hetzelfde wachtwoordauthenticatiemechanisme.
De bestemmings-URL blijft ongewijzigd. Een HTTPS-verzoek brengt nog steeds de TLS van de bestemming tot stand en verifieert deze via het proxypad; SOCKS toevoegen is geen reden om die verificatie uit te schakelen.