私は複数のHTTP
接続を開始するアプリケーションを持っており、すべての接続にプロキシを追加したいと思います。ルビーのすべてのHTTP接続に自動的にプロキシを追加する
アプリケーションので、理想的には、私が代わりにそれぞれと接続を開始するコード内のすべての場所に手動で追加するこれらのライブラリから開始し、すべての接続にパッチを適用できるようにしたいnet/HTTP
、TCP
ソケットとopen-uri
を使用しています。
これを達成する方法はありますか(Ruby 1.9.2
)?
私は複数のHTTP
接続を開始するアプリケーションを持っており、すべての接続にプロキシを追加したいと思います。ルビーのすべてのHTTP接続に自動的にプロキシを追加する
アプリケーションので、理想的には、私が代わりにそれぞれと接続を開始するコード内のすべての場所に手動で追加するこれらのライブラリから開始し、すべての接続にパッチを適用できるようにしたいnet/HTTP
、TCP
ソケットとopen-uri
を使用しています。
これを達成する方法はありますか(Ruby 1.9.2
)?
オープンURIは、ここでWindowsとUNIXの変異体の両方でそれを使用する方法についての記事がある
変数HTTP_PROXY環境を使用しています。
http://kaamka.blogspot.com/2009/06/httpproxy-environment-variable.html
あなたはまた、環境に依存し、それを毎回
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
:
}
を設定する
ENV['HTTP_PROXY'] = 'http://username:[email protected]:port'
ネット/ HTTPのドキュメントがないと言うENVハッシュを使ってRubyで直接設定することができます
からhttp://ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html
はいとm echanize(これは1.0.0 verisonのためである)
require 'mechanize'
url = 'http://www.example.com'
agent = Mechanize.new
agent.user_agent_alias = 'Mac Safari'
agent.set_proxy('127.0.0.1', '3128')
@page = agent.get(:url => url)
'ENV [ 'HTTP_PROXY']'すぎない - これは私がネット:: HTTP'のみ読み込み '考える自体が – cwd
を動作するようには思えないための:ENVをv.2のプロキシ – akostadinov