ruby - 如何配置 Ruby Mechanize 代理以通过 Charles Web 代理工作?

标签 ruby proxy mechanize charles-proxy

我正在使用 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/

相关文章:

javascript - JavaScript 片段中的 Ruby 变量不适用于 Slim lang

ruby - 如何避免八进制、二进制等数字在字符串转换期间改变输出

python - 删除 SOCKS 4/5 代理

javascript - 如何使用 python mechanize 解析动态更新的 .jsp 表单?

登录后 Ruby Mechanize 和更改 URL

mysql - 当关系按连接模型的属性排序时,ActiveRecord select 不创建访问器方法

ruby - 使用 Twitter-Text-Rb Gem 在 Rails 中提取标签

java - Axis HTTP 与 Axis HTTPS 代理设置

eclipse更新站点: HTTP Proxy Authentication Required error

python - 过滤掉 Python Mechanize 网络爬虫的图像/文件链接