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