Прокси SOCKS в .NET HttpClient: поддерживаемые схемы URI
Используйте документированные схемы URI прокси SOCKS совместимого обработчика .NET HTTP вместо предположения, что старые сторонние рецепты всё ещё нужны.
Старые ответы рекомендуют дополнительный обработчик SOCKS, потому что они ориентированы на более старый сетевой стек .NET. Современный поддерживаемый стек .NET HTTP может использовать документированные схемы URI прокси SOCKS.
var handler = new HttpClientHandler
{
Proxy = new WebProxy("socks5://203.0.113.10:1080"),
UseProxy = true
};
using var client = new HttpClient(handler);Конечная точка приведена только для примера. Список прокси SOCKS5 предлагает публичных кандидатов для этого URI socks5 в WebProxy; используйте версию, которую поддерживает фактический обработчик. Проверьте целевой фреймворк, среду выполнения, платформу и фактический обработчик, используемый приложением, прежде чем применять этот пример к более старому процессу .NET Framework.
Текущая документация Microsoft по прокси перечисляет socks4, socks4a и socks5. Эти имена описывают поведение протокола. Один номер порта не выбирает версию SOCKS, а написание socks5h в curl не является универсальной схемой URI, которую принимает каждый клиент.
Для аутентифицированного сервиса SOCKS5 настройте учётные данные в соответствии с интерфейсом, поддерживаемым обработчиком. SOCKS4 и SOCKS4a не обеспечивают тот же механизм аутентификации по паролю.
URL назначения остаётся неизменным. HTTPS-запрос по-прежнему устанавливает и проверяет TLS назначения через путь прокси; добавление SOCKS не является причиной отключать эту проверку.