Proxies SOCKS no .NET HttpClient: esquemas URI suportados
Use os esquemas URI de proxy SOCKS documentados de um manipulador HTTP .NET compatível em vez de presumir que as receitas antigas de terceiros continuam necessárias.
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.