模块 OpenURI
OpenURI
是一个易于使用的包装器,用于 Net::HTTP
、Net::HTTPS 和 Net::FTP。
示例¶ ↑
可以像打开文件一样打开 http、https 或 ftp URL
URI.open("https://ruby-lang.org.cn/") {|f| f.each_line {|line| p line} }
打开的文件有几个用于获取其元信息的方法,如下所示,因为它由 OpenURI::Meta
扩展。
URI.open("https://ruby-lang.org.cn/en") {|f| f.each_line {|line| p line} p f.base_uri # <URI::HTTP:0x40e6ef2 URL:https://ruby-lang.org.cn/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 }
可以通过可选的哈希参数指定额外的标头字段。
URI.open("https://ruby-lang.org.cn/en/", "User-Agent" => "Ruby/#{RUBY_VERSION}", "From" => "foo@bar.invalid", "Referer" => "https://ruby-lang.org.cn/") {|f| # ... }
默认情况下,诸如 http_proxy、https_proxy 和 ftp_proxy 之类的环境变量会生效。这里我们禁用代理
URI.open("https://ruby-lang.org.cn/en/", :proxy => nil) {|f| # ... }
有关可用选项的更多信息,请参阅 OpenURI::OpenRead.open
和 URI.open
。
URI
对象也可以以类似的方式打开。
uri = URI.parse("https://ruby-lang.org.cn/en/") uri.open {|f| # ... }
URI
对象可以直接读取。返回的字符串也由 OpenURI::Meta
扩展。
str = uri.read p str.base_uri
- 作者
-
Tanaka Akira <akr@m17n.org>
常量
- 选项
- VERSION