有没有办法使用Ruby';s net/http将表单数据发布到http代理?
我有一个基本的Squid服务器设置,我正在尝试使用Ruby的Net::HTTP::Proxy类将表单数据发送到指定的HTTP端点 我认为我可以做到以下几点:有没有办法使用Ruby';s net/http将表单数据发布到http代理?,ruby,proxy,squid,Ruby,Proxy,Squid,我有一个基本的Squid服务器设置,我正在尝试使用Ruby的Net::HTTP::Proxy类将表单数据发送到指定的HTTP端点 我认为我可以做到以下几点: Net::HTTP::Proxy(my_host, my_port).start(url.host) do |h| req = Net::HTTP::Post.new(url.path) req.form_data = { "xml" => xml } h.request(req) end 但是,唉,
Net::HTTP::Proxy(my_host, my_port).start(url.host) do |h|
req = Net::HTTP::Post.new(url.path)
req.form_data = { "xml" => xml }
h.request(req)
end
但是,唉,代理和非代理的Net::HTTP类似乎没有使用代理IP地址。我的远程服务响应,告诉我它收到了来自错误IP地址的请求,即:不是代理。我正在寻找一种特定的方法来编写这个过程,这样我就可以通过代理成功地发送一个表单帖子。帮助?:) 哈,事实证明这是正确的方法,我的问题实际上是Squid和我正在推动的API。与此问题相关的有趣提示,如果您使用Squid代理服务器代理,可能需要添加此服务器配置选项:
header_access X-Forwarded-For deny all
这将确保代理完全忽略与HTTP端点相关的调用方IP地址的任何关系。您可能还想看看基于Perl的WWW::mechanize的mechanize gem。如果它与Perl类似(我相信它是),那么它封装了您正在处理的许多常见混乱 红宝石:
Perl:您介意我添加一个基于此代码的示例吗?另外,你也可以随意用叉子叉起来,自己加上:)当然可以!那很好。