我正在使用 Ruby/Mechanize 编写一个“自动填写表格”应用程序。它几乎可以工作。
我可以使用精彩Charles Web 代理以查看服务器和我的 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 在那些太平盛世之后已经成熟了几代......)
有什么想法吗?
最佳答案
Web 代理通常不是由 端口定义的,而通常是一个完整的主机名。 Charles 很可能安装在本地主机上。因此,以下调整可能对您有用:
@agent ||= Mechanize.new do |agent|
agent.set_proxy("localhost", 8888)
end
关于ruby - 如何配置 Ruby Mechanize 代理以通过 Charles Web 代理工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18348673/