Старые ответы рекомендуют дополнительный обработчик 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 не является причиной отключать эту проверку.

Похожие статьи