Ruby `sysread';:已到达文件结尾(EOR)

Ruby `sysread';:已到达文件结尾(EOR),ruby,Ruby,我得到如下错误:: c:/ruby/lib/ruby/1.8/net/protocol.rb:133:insysread”:已到达文件末尾(EOFError) 来自c:/ruby/lib/ruby/1.8/net/protocol.rb:133:inrbuf\u fill' 来自c:/ruby/lib/ruby/1.8/timeout.rb:56:intimeout' 从c:/ruby/lib/ruby/1.8/timeout.rb:76:intimeout' 来自c:/ruby/lib/rub

我得到如下错误:: c:/ruby/lib/ruby/1.8/net/protocol.rb:133:in
sysread”:已到达文件末尾(EOFError)
来自c:/ruby/lib/ruby/1.8/net/protocol.rb:133:in
rbuf\u fill' 来自c:/ruby/lib/ruby/1.8/timeout.rb:56:in
timeout'
从c:/ruby/lib/ruby/1.8/timeout.rb:76:in
timeout' 来自c:/ruby/lib/ruby/1.8/net/protocol.rb:132:in
rbuf\u-fill'
来自c:/ruby/lib/ruby/1.8/net/protocol.rb:116:in
readuntil' 来自c:/ruby/lib/ruby/1.8/net/protocol.rb:126:in
readline'
从c:/ruby/lib/ruby/1.8/net/http.rb:2029:in
read\u status\u line' 来自c:/ruby/lib/ruby/1.8/net/http.rb:2018:in
read\u new'
来自c:/ruby/lib/ruby/1.8/net/http.rb:1059:in
request' 来自c:/ruby/lib/ruby/1.8/net/http.rb:957:in
request\u get'
来自c:/ruby/lib/ruby/1.8/net/http.rb:380:in
get\u response' 来自c:/ruby/lib/ruby/1.8/net/http.rb:547:in
start'
来自c:/ruby/lib/ruby/1.8/net/http.rb:379:in
get\u response' 来自c:/ruby/lib/ruby/1.8/net/http.rb:337:in'get_print'
从urlparsing1.rb:3中,我无法在现代ruby版本上重现上述行为,但我想我知道是什么导致了它

让我们一步一步地深入了解执行过程:

require 'net/http'
require 'uri'
Net::HTTP.get_print URI.parse('https://forums.malwarebytes.org/index.php?showtopic=49893')
出声了。重新使用让我们来处理它:

▶ Net::HTTP.get_print u
#⇒ <html><head><meta http-equiv='refresh' content='0;
#    url=/index.php?/topic/49893-removal-instructions-for-a-fast-antivirus/'>
#  </head><body></body></html>=> nil

总结:我想您应该自己处理重定向。

您可以尝试使用以下方法:

▶ u_redir = Net::HTTP.get(u).scan(/url=(.*?)'/).first.first
#⇒ "/index.php?/topic/49893-removal-instructions-for-a-fast-antivirus/"

▶ u.path, u.query = u_redir.split '?'
#⇒ [
#  [0] "/index.php",
#  [1] "/topic/49893-removal-instructions-for-a-fast-antivirus/"
# ]
▶ Net::HTTP.get_print u
#⇒ [HTML CONTENT]

这不符合标准,伙计,帮帮我,同样的错误毕竟,你确定你有正确的互联网连接吗?中间有代理吗?一切正常..我有正确的互联网连接。。,
▶ u_redir = Net::HTTP.get(u).scan(/url=(.*?)'/).first.first
#⇒ "/index.php?/topic/49893-removal-instructions-for-a-fast-antivirus/"

▶ u.path, u.query = u_redir.split '?'
#⇒ [
#  [0] "/index.php",
#  [1] "/topic/49893-removal-instructions-for-a-fast-antivirus/"
# ]
▶ Net::HTTP.get_print u
#⇒ [HTML CONTENT]
require 'net/http'
require 'uri'

uri = URI.parse('https://forums.malwarebytes.org/index.php?showtopic=49893')


request = Net::HTTP::Get.new uri.request_uri

res = Net::HTTP.start(uri.host, uri.port,
         :use_ssl => uri.scheme == 'https') {|http| http.request request}
p res.body