Proxys SOCKS dans .NET HttpClient : schémas URI pris en charge
Utilisez les schémas URI de proxy SOCKS documentés d'un gestionnaire HTTP .NET compatible au lieu de supposer que les anciennes recettes tierces restent nécessaires.
Les anciennes réponses recommandent un gestionnaire SOCKS supplémentaire parce qu'elles ciblent une pile réseau .NET plus ancienne. Une pile HTTP .NET moderne prise en charge peut utiliser les schémas URI de proxy SOCKS documentés.
var handler = new HttpClientHandler
{
Proxy = new WebProxy("socks5://203.0.113.10:1080"),
UseProxy = true
};
using var client = new HttpClient(handler);Le point de terminaison n'est qu'illustratif. La liste de proxys SOCKS5 fournit des candidats publics pour cet URI socks5 de WebProxy ; utilisez la version prise en charge par le gestionnaire réel. Vérifiez le framework cible, le runtime, la plateforme et le gestionnaire réellement utilisé par l'application avant d'appliquer cet exemple à un processus .NET Framework plus ancien.
La documentation actuelle de Microsoft sur les proxys répertorie socks4, socks4a et socks5. Ces noms décrivent le comportement du protocole. Un numéro de port seul ne choisit pas la version SOCKS, et la graphie socks5h de curl n'est pas un schéma URI universel accepté par tous les clients.
Pour un service SOCKS5 authentifié, configurez les identifiants selon l'interface prise en charge par le gestionnaire. SOCKS4 et SOCKS4a ne fournissent pas le même mécanisme d'authentification par mot de passe.
L'URL de destination reste inchangée. Une requête HTTPS établit et vérifie toujours le TLS de la destination via le chemin du proxy ; ajouter SOCKS n'est pas une raison de désactiver cette vérification.