Respostas antigas recomendam um manipulador SOCKS extra porque visam uma pilha de rede .NET mais antiga. Uma pilha HTTP .NET moderna e suportada pode usar os esquemas URI de proxy SOCKS documentados.

var handler = new HttpClientHandler
{
    Proxy = new WebProxy("socks5://203.0.113.10:1080"),
    UseProxy = true
};
using var client = new HttpClient(handler);

O endpoint é apenas ilustrativo. A lista de proxies SOCKS5 fornece candidatos públicos para este URI socks5 do WebProxy; use a versão suportada pelo manipulador real. Verifique a estrutura de destino, o tempo de execução, a plataforma e o manipulador real usado pelo aplicativo antes de aplicar este exemplo a um processo .NET Framework mais antigo.

A documentação atual de proxy da Microsoft lista socks4, socks4a e socks5. Esses nomes descrevem o comportamento do protocolo. Um número de porta sozinho não escolhe a versão do SOCKS, e a grafia socks5h do curl não é um esquema URI universal aceito por todos os clientes.

Para um serviço SOCKS5 autenticado, configure as credenciais de acordo com a interface suportada pelo manipulador. SOCKS4 e SOCKS4a não fornecem o mesmo mecanismo de autenticação por senha.

O URL de destino permanece inalterado. Uma solicitação HTTPS ainda estabelece e verifica o TLS do destino pelo caminho do proxy; adicionar SOCKS não é motivo para desativar essa verificação.

Artigos relacionados