gpt4 book ai didi

ruby - 自动向 ruby​​ 中的所有 HTTP 连接添加代理

转载 作者:数据小太阳 更新时间:2023-10-29 06:44:16 26 4
gpt4 key购买 nike

我有一个启动多个 HTTP 连接的应用程序,我想为所有连接添加一个代理。

该应用程序正在使用 net/HTTPTCP 套接字和 open-uri 所以理想情况下我希望能够修补所有连接从这些库启动,而不是手动将其添加到启动连接的代码中的每个位置。

有没有办法实现(在 Ruby 1.9.2 上)?

最佳答案

Open URI 使用 HTTP_PROXY 环境变量

这是一篇关于如何在 windows 和 unix 变体上使用它的文章。

http://kaamka.blogspot.com/2009/06/httpproxy-environment-variable.html

您也可以使用 ENV 哈希直接在 ruby​​ 中设置它

ENV['HTTP_PROXY'] = 'http://username:password@hostname:port'

net/http文档说不要依赖环境,每次都要设置

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
:
}

来自 http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html

关于ruby - 自动向 ruby​​ 中的所有 HTTP 连接添加代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6868507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com