0

我在本地主机上设置了代理并且运行良好。我可以完全正常地运行此代码连接到代理。

Net::HTTP::Proxy('http://localhost', 1234).start  #do whatever I want after this point

我完全可以通过浏览器连接到它,但是当我在 mechanize 上运行它时它完全失败了。这是代码。

require 'mechanize'
agent=Mechanize.new
agent.set_proxy('localhost', 1234)
agent.get('http://google.com')   #or any website for that matter

这是我回来的错误

Net::HTTP::Persistent::Error: too many connection resets (due to end of file reached - EOFError) after 0 requests on 22249020, last used 1376802493.5352573 seconds ago

我已经读到 1.0.0 之后的版本很难连接到 http 代理,但我需要并且我目前正在运行 2.7.2 版本。我可以做些什么来连接到代理。

4

2 回答 2

2

一些代理无法处理持久连接(保持活动)。您需要确保使用支持 HTTP/1.1 的代理。

于 2013-08-18T08:23:08.843 回答
0

您正在运行哪个版本的 Ruby?我在 Ruby 2.1.5 和 Mechanize 中遇到了这个问题,但在 Ruby 1.9.3 中没有。

大概您已经解决了您的问题,但对于可能最终出现在这里的其他任何人来说,降级到 Ruby 1.9.3 可能是一种解决方法。

于 2014-11-26T15:26:31.160 回答