18

プロキシを設定し、ドキュメントのように単純な get リクエストで使用しようとしています。しかし、私はいつもエラーを受け取ります! アドレスもポートもopen-uriで合っていてうまくいきました http://proxy:8080..

proxy_addr = 'proxy'
proxy_port = 8080

Net::HTTP.new('google.de', nil, proxy_addr, proxy_port).start { |http|
  # always proxy via your.proxy.addr:8080
  Net::HTTP.get('google.de', '')
}

私は何を間違っていますか?すべての回答に感謝します!

4

4 に答える 4

24
Net::HTTP.new('google.de', nil, proxy_addr, proxy_port).start { |http|

これによりhttp、ブロックで使用するオブジェクトが作成されます。ここでは、毎回新しいものを生成するのではなく、それを使用しますNet::HTTP.get('google.de', '')

proxy_addr = 'proxy'
proxy_port = 8080

Net::HTTP.new('google.de', nil, proxy_addr, proxy_port).start { |http|
  # always proxy via your.proxy.addr:8080
  http.get('google.de', '')
}
于 2013-04-03T16:45:40.357 に答える
12

プロキシの背後で REST API 呼び出しを行う場合に機能するコードは次のとおりです。

require "uri"
require 'net/http'
    
proxy_host = '<proxy addr>'
proxy_port = '<proxy_port'
proxy_user = '<username>'
proxy_pass = '<password>'
    
uri   = URI.parse("https://saucelabs.com:80/rest/v1/users/<username>")
proxy = Net::HTTP::Proxy(proxy_host,
                         proxy_port,
                         proxy_user,
                         proxy_pass)
    
req = Net::HTTP::Get.new(uri.path)

req.basic_auth(<sauce_username>,
               <sauce_password>)
    
result = proxy.start(uri.host,uri.port) do |http|
  http.request(req)
end
    
puts result.body
于 2014-08-03T20:59:40.853 に答える