我正在使用Ruby / Mechanize编写“自动填写表单”应用程序。它几乎可以工作。
我可以使用精彩的Charles网络代理查看服务器和我的Firefox浏览器之间的交换。现在我想用Charles查看服务器和我的应用程序之间的交换。
Charles代理端口8888.假设服务器位于https://my.host.com。一件不起作用的是:
@agent ||= Mechanize.new do |agent|
agent.set_proxy("my.host.com", 8888)
end
这会产生Net::HTTP::Persistent::Error
:
...lib/net/http/persistent.rb:579:in `rescue in connection_for': connection refused: my.host.com:8888 (Net::HTTP::Persistent::Error)
所以要么我向agent.set_proxy(host, ...)
提供了错误的主机参数,要么我没有正确配置Charles。 (FWIW,我曾经能够做到这一点,但自从那些宁静的日子以来,Mechanize和Charles已经成熟了几代......)
有什么想法吗?
答案 0 :(得分:10)
Web代理通常不是由 端口定义的,而是通常是完整的主机名。 Charles很可能安装在localhost上。因此,以下调整可能对您有用:
@agent ||= Mechanize.new do |agent|
agent.set_proxy("localhost", 8888)
end