如何配置Ruby Mechanize代理以通过Charles Web代理工作?
我正在使用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,我曾经能够做到这一点,但是自从那些宁静的日子以来,机械师和查尔斯已经成熟了几代……)
有任何想法吗?
Web代理通常不仅仅由端口定义,而通常是完整的主机名。 Charles很可能安装在localhost上。 因此,以下调整可能对您有用:
@agent ||= Mechanize.new do |agent| agent.set_proxy("localhost", 8888) end
- Ruby:从没有Rails的gem访问rake任务
- 迁移:t.references不允许指定索引名称
- 使用Ajax更新Rails中的元素
- 在Sinatra的路线之间传递变量
- Watir:通过启动chrome浏览器有时会出现Net :: ReadTimeout错误
- 使用RVM Mac OS X安装Ruby 1.9.2时出现问题
- 是否可以在`somewhere’中添加`before(:each)`钩子,以便所有spec文件都可以运行它?
- Ruby on Rails内容管理系统?
- `open_http’:403 Forbidden(OpenURI :: HTTPError)用于字符串“Steve_Jobs”但不包含任何其他字符串