Obter uma página HTTP pelo adaptador Net::HTTP do Socksify
Use o adaptador Net::HTTP do Socksify, preserve o destino da requisição da URL e leia o corpo da resposta devolvida.
O Socksify fornece um adaptador para Net::HTTP. Carregue esse adaptador e use o método documentado socks_proxy:
require 'socksify/http'
uri = URI('http://example.com/?view=compact')
Net::HTTP.socks_proxy('127.0.0.1', 1400)
.start(uri.host, uri.port) do |http|
response = http.get(uri.request_uri)
puts response.body
end
A porta local é um exemplo de endpoint SOCKS. Para um teste permitido de um site público por meio de um serviço SOCKS sem autenticação, um candidato compatível da lista de proxies SOCKS pode substituir esse host e porta; alinhe com o protocolo suportado pelo adaptador instalado. request_uri preserva o caminho e a consulta e acrescenta uma barra quando a URL não tem caminho explícito. Imprimir a saída de inspeção do objeto de resposta é diferente de ler o corpo dele.
A forma de bloco fecha a sessão HTTP quando o bloco termina. Este exemplo é para um destino HTTP; um cliente HTTPS também precisa da sua configuração TLS habitual.
Trechos mais antigos escrevem a fábrica como SOCKSProxy. A implementação atual do projeto mantém isso como alias, enquanto o README usa socks_proxy. Verifique a combinação instalada de Socksify e Ruby, porque o adaptador se integra às entranhas do Net::HTTP.