Socksify proporciona un adaptador para Net::HTTP. Cargue ese adaptador y use su 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

El puerto local es un punto de conexión SOCKS de ejemplo. Para una prueba permitida de un sitio público mediante un servicio SOCKS sin autenticación, un candidato compatible de la lista de proxies SOCKS puede reemplazar ese host y puerto; ajuste el protocolo que admite el adaptador instalado. request_uri conserva la ruta y la consulta y añade una barra cuando la URL no tiene una ruta explícita. Imprimir la salida de inspección del objeto de respuesta es distinto de leer su cuerpo.

La forma de bloque cierra la sesión HTTP cuando termina el bloque. Este ejemplo es para un destino HTTP; un cliente HTTPS también necesita su configuración TLS habitual.

Los fragmentos antiguos escriben la fábrica como SOCKSProxy. La implementación actual del proyecto la conserva como alias, mientras que su README usa socks_proxy. Compruebe la combinación instalada de Socksify y Ruby, porque el adaptador se integra con las interioridades de Net::HTTP.

Artículos relacionados