我有一个基本的Squid服务器设置,我正在尝试使用Ruby的Net :: HTTP :: Proxy类将表单数据的POST发送到指定的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类似乎没有使用代理IP地址。我的远程服务响应告诉我它收到了来自错误IP地址的请求,即:不是代理。我正在寻找一种特定的方法来编写程序,以便我可以通过代理成功发送表单。救命? :)
答案 0 :(得分:0)
哈,原来这是正确的方法,我的问题实际上是Squid和我推动的API。有趣的提示与此问题有关,如果您使用Squid代理服务器代理,您可能想要添加此服务器配置选项:
header_access X-Forwarded-For deny all
这将确保代理完全忽略与HTTP端点有关的调用者IP地址的任何关系。
答案 1 :(得分:0)
您可能还想查看基于Perl的WWW :: Mechanize的mechanize gem。如果它像Perl那样(并且我被引导相信它),那么它就包含了你正在处理的许多常见混乱。