Socksify предоставляет адаптер для Net::HTTP. Загрузите этот адаптер и используйте его документированный метод 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

Локальный порт — пример конечной точки SOCKS. Для разрешённой проверки публичного сайта через службу SOCKS без аутентификации подходящий кандидат из списка SOCKS-прокси может заменить этот хост и порт; согласуйте протокол, поддерживаемый установленным адаптером. request_uri сохраняет путь и запрос и добавляет косую черту, когда в URL нет явного пути. Печать результата проверки объекта ответа отличается от чтения его тела.

Блочная форма закрывает сеанс HTTP по завершении блока. Этот пример предназначен для HTTP-назначения; клиенту HTTPS также нужна его обычная конфигурация TLS.

В старых фрагментах фабрика записывается как SOCKSProxy. Текущая реализация проекта сохраняет это как псевдоним, а в её README используется socks_proxy. Проверьте установленное сочетание Socksify и Ruby, поскольку адаптер взаимодействует с внутренностями Net::HTTP.

Похожие статьи