【问题标题】:is there a way using Ruby's net/http to post form data to an http proxy?有没有办法使用 Ruby 的 net/http 将表单数据发布到 http 代理?
【发布时间】:2011-01-04 06:18:17
【问题描述】:

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

【问题讨论】:

标签: ruby proxy squid


【解决方案1】:

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

header_access X-Forwarded-For deny all

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

【讨论】:

    【解决方案2】:

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

    鲁比:http://mechanize.rubyforge.org/

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

    【讨论】:

      猜你喜欢
      • 2020-02-20
      • 2012-12-15
      • 2018-07-29
      • 1970-01-01
      • 2023-03-08
      • 2015-06-04
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多