ruby中的错误使用require'open-uri'时

时间:2014-01-28 07:48:49

标签: ruby windows

    open("http://www.ruby-lang.org/en") {|f|
  f.each_line {|line| p line}
  p f.base_uri         # <URI::HTTP:0x40e6ef2 URL:http://www.ruby-lang.org/en/>
  p f.content_type     # "text/html"
  p f.charset          # "iso-8859-1"
  p f.content_encoding # []
  p f.last_modified    # Thu Dec 05 02:45:02 UTC 2002
}

当我尝试打开问题时,它会给我一个错误说

C:/Users/Administrator/Desktop/ruby.rb:1:in `initialize': Invalid argument - htt
p://www.ruby-lang.org/en (Errno::EINVAL)
        from C:/Users/Administrator/Desktop/ruby.rb:1:in `open'
        from C:/Users/Administrator/Desktop/ruby.rb:1:in `<main>'

该错误意味着什么以及如何解决它并感谢

1 个答案:

答案 0 :(得分:3)

默认情况下,openKernel#open方法,对http原型一无所知。

要使代码正常工作,您应该明确地

require 'open-uri'

monkeypatches open方法,现在可以打开URI