0

我有一个基本的 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 地址的请求,即:不是代理。我正在寻找一种特定的方式来编写程序,以便我可以通过代理成功发送表单。帮助?:)

4

2 回答 2

0

哈,事实证明这是正确的方法,我的问题实际上是 Squid 和我正在推送的 API。与此问题相关的有趣提示,如果您使用 Squid 代理服务器进行代理,您可能需要添加此服务器配置选项:

header_access X-Forwarded-For deny all

就 HTTP 端点而言,这将确保代理完全忽略与调用者 IP 地址的任何关系。

于 2010-05-26T20:34:59.900 回答
0

您可能还想查看基于 Perl 的 WWW::Mechanize 的 mechanize gem。如果它与 Perl 类似(我被引导相信它是),那么它封装了您正在处理的大部分常见问题。

红宝石: http: //mechanize.rubyforge.org/

Perl:http ://search.cpan.org/dist/WWW-Mechanize/

于 2011-01-03T22:18:17.837 回答