Programming Tutorials

(追記) (追記ここまで)

Using Proxy to connect to URLs in Ruby

By: Emiley J. in Ruby Tutorials on 2009年03月03日 [フレーム]

Net::HTTP.Proxy creates http proxy class. It has same methods of Net::HTTP but its instances always connect to proxy, instead of given host.

 require 'net/http'
 proxy_addr = 'your.proxy.host'
 proxy_port = 8080
 :
 Net::HTTP::Proxy(proxy_addr, proxy_port).start('www.example.com') {|http|
 # always connect to your.proxy.addr:8080
 :
 }

Since Net::HTTP.Proxy returns Net::HTTP itself when proxy_addr is nil, there's no need to change code if there"s proxy or not.

There are two additional parameters in Net::HTTP.Proxy which allow to specify proxy user name and password:

 Net::HTTP::Proxy(proxy_addr, proxy_port, proxy_user = nil, proxy_pass = nil)

You may use them to work with authorization-enabled proxies:

 require 'net/http'
 require 'uri'
 proxy_host = 'your.proxy.host'
 proxy_port = 8080
 uri = URI.parse(ENV['http_proxy'])
 proxy_user, proxy_pass = uri.userinfo.split(/:/) if uri.userinfo
 Net::HTTP::Proxy(proxy_host, proxy_port,
 proxy_user, proxy_pass).start('www.example.com') {|http|
 # always connect to your.proxy.addr:8080 using specified username and password
 :
 }

Note that net/http never rely on HTTP_PROXY environment variable. If you want to use proxy, set it explicitly.




(追記) (追記ここまで)


Add Comment

JavaScript must be enabled for certain features to work
* Required information
1000

Comments

No comments yet. Be the first!
(追記) (追記ここまで)
(追記) (追記ここまで)

AltStyle によって変換されたページ (->オリジナル) /