如何配置Ruby机械化代理以通过Charles web代理工作



我正在使用Ruby/Mechanical编写一个"自动填写表单"应用程序。它几乎奏效了。

我可以使用出色的Charles网络代理来查看服务器和我的Firefox浏览器之间的交换。现在我想使用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,我曾经能够做到这一点,但自从那些平静的日子以来,机械化和查尔斯已经成熟了好几代…)

有什么想法吗?

web代理通常不是由端口定义的,而是一个完整的主机名。Charles很可能安装在localhost上。因此,以下调整可能适用于您:

@agent ||= Mechanize.new do |agent|
  agent.set_proxy("localhost", 8888)
end

最新更新