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를 사용합니다. 어댑터가 Net::HTTP 내부와 통합되므로 설치된 Socksify와 Ruby 조합을 확인하세요.

관련 글