2013-08-18 28 views
0

我有一個代理設置和運行在我的本地主機上完全正常。我可以連接到代理完全正常運行此代碼。機械化問題連接到HTTP代理... Ruby

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

我可以通過瀏覽器連接到它,但是當我去機械化它時,它完全失敗。這是代碼。

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版0.2。有什麼我可以做的連接到代理。

+0

你可以從這裏解決[**'Net :: HTTP :: Persistent :: Error:在14759220 **上的2個請求之後連接重置太多(由於對等重置的連接重置 - Errno :: ECONNRESET)** ](https://github.com/sparklemotion/mechanize/issues/123) –

+0

謝謝,但我已經閱讀過這篇文章,但是我沒有找到解決問題的解決方案。任何其他可能是解決方案。 – user2109354

回答

2

某些代理無法處理持久連接(保持活動狀態)。您需要確保使用支持HTTP/1.1的代理。

0

你運行的是哪個版本的Ruby?我對Ruby 2.1.5和Mechanize有這個問題,但對Ruby 1.9.3沒有這個問題。

大概你已經解決了你的問題,但對於任何可能在這裏結束的人來說,降級到Ruby 1.9.3可能是一個解決方法。