Net::HTTP::Proxy doesn't work

想使用Net::HTTP的代理功能访问网页,代码如下

[code="ruby"]require 'net/http'

proxy_addr = '12.161.250.205'
proxy_port = 1080

url = URI.parse('http://www.iteye.com')
res = Net::HTTP::Proxy(proxy_addr , proxy_port ).start(url.host, url.port) {|http|
http.get('/')
}[/code]

结果报错如下:

c:/ruby/lib/ruby/1.8/net/protocol.rb:135:in sysread': end of file reached (EOFE
rror)
from c:/ruby/lib/ruby/1.8/net/protocol.rb:135:in
rbuf_fill'
from c:/ruby/lib/ruby/1.8/timeout.rb:62:in timeout'
from c:/ruby/lib/ruby/1.8/timeout.rb:93:in
timeout'
from c:/ruby/lib/ruby/1.8/net/protocol.rb:134:in rbuf_fill'
from c:/ruby/lib/ruby/1.8/net/protocol.rb:116:in
readuntil'
from c:/ruby/lib/ruby/1.8/net/protocol.rb:126:in readline'
from c:/ruby/lib/ruby/1.8/net/http.rb:2020:in
read_status_line'
from c:/ruby/lib/ruby/1.8/net/http.rb:2009:in read_new'
from c:/ruby/lib/ruby/1.8/net/http.rb:1050:in
request'
from c:/ruby/lib/ruby/1.8/net/http.rb:772:in get'
from web1.rb:22
from c:/ruby/lib/ruby/1.8/net/http.rb:543:in
start'
from c:/ruby/lib/ruby/1.8/net/http.rb:440:in `start'
from web1.rb:21

Thanks in Advance

程式碼十分正常。試試用telnet,駁上proxy,取檔有沒有問題。

$ telnet 12.161.250.205 1080
GET http://www.java.com/ http/1.1

按兩下Enter。看看結果是否正常。

若是生產用,試用begin/rescue/end來補救錯誤。

代理不稳定时,会有这种情况发生。