No Indy 10, conecte o TIdHTTP a um proxy SOCKS por meio do seu IOHandler. Supondo que o formulário já possua os componentes Http, SocketHandler e Socks:

Http.IOHandler := SocketHandler;
SocketHandler.TransparentProxy := Socks;
Socks.Host := 'proxy.example';
Socks.Port := 1080;
Socks.Version := svSocks5;

Page := Http.Get('http://example.com/');

Aqui SocketHandler é um TIdIOHandlerStack e Socks é um TIdSocksInfo. Configure os componentes antes da requisição. Para este exemplo de site público sem credenciais de proxy configuradas, escolha um candidato SOCKS5 na lista de proxies SOCKS5 e mantenha qualquer rota de proxy HTTP obsoleta limpa como descrito abaixo. Escolher a versão SOCKS importa porque o padrão é svNoSocks.

Os ProxyParams do TIdHTTP configuram um proxy HTTP. Uma rota somente SOCKS pertence ao TransparentProxy. Manter também um proxy HTTP ali pode descrever outro intermediário além da conexão SOCKS, então limpe uma configuração de proxy HTTP obsoleta quando ela não fizer parte do caminho pretendido.

Para autenticação SOCKS5 com nome de usuário/senha, defina Socks.Authentication como saUsernamePassword e forneça o nome de usuário e a senha. Um IOHandler compatível com SSL deve manter seu papel TLS; anexe o SOCKS à sua interface de proxy herdada em vez de substituí-lo por um manipulador simples.

Artigos relacionados