本文简要介绍ruby语言中 OpenURI模块
的用法。
OpenURI
是 Net::HTTP
、 Net::HTTPS 和 Net::FTP 的 easy-to-use 包装器。
示例
可以像打开文件一样打开 http、https 或 ftp URL:
URI.open("http://www.ruby-lang.org/") {|f|
f.each_line {|line| p line}
}
打开的文件有几个用于 meta-information 的 getter 方法,如下所示,因为它是由 OpenURI::Meta
扩展的。
URI.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
}
额外的标头字段可以由可选的散列参数指定。
URI.open("http://www.ruby-lang.org/en/",
"User-Agent" => "Ruby/#{RUBY_VERSION}",
"From" => "foo@bar.invalid",
"Referer" => "http://www.ruby-lang.org/") {|f|
# ...
}
http_proxy、https_proxy、ftp_proxy等环境变量默认生效。这里我们禁用代理:
URI.open("http://www.ruby-lang.org/en/", :proxy => nil) {|f|
# ...
}
有关可用选项的更多信息,请参阅 OpenURI::OpenRead.open
和 URI.open
。
URI
对象可以用类似的方式打开。
uri = URI.parse("http://www.ruby-lang.org/en/")
uri.open {|f|
# ...
}
URI
对象可以直接读取。返回的字符串也由 OpenURI::Meta
扩展。
str = uri.read
p str.base_uri
- 作者
-
Tanaka Akira <akr@m17n.org>
相关用法
- Ruby Open3.capture3用法及代码示例
- Ruby Open3.capture2用法及代码示例
- Ruby OpenStruct.ostruct[name] =用法及代码示例
- Ruby OpenSSL.fips_mode =用法及代码示例
- Ruby OpenSSL模块用法及代码示例
- Ruby Open3.capture2e用法及代码示例
- Ruby Open3.popen2e用法及代码示例
- Ruby OpenRead.open用法及代码示例
- Ruby Open3.popen3用法及代码示例
- Ruby Open3.popen2用法及代码示例
- Ruby OpenSSL.print_mem_leaks用法及代码示例
- Ruby Open3.pipeline用法及代码示例
- Ruby Open3.pipeline_rw用法及代码示例
- Ruby OpenStruct类用法及代码示例
- Ruby OpenSSL.Digest用法及代码示例
- Ruby OpenStruct.==用法及代码示例
- Ruby OpenStruct.each_pair用法及代码示例
- Ruby OpenStruct.delete_field用法及代码示例
- Ruby OpenStruct.dig用法及代码示例
- Ruby Open3.pipeline_w用法及代码示例
- Ruby Open3.pipeline_r用法及代码示例
- Ruby OpenStruct.new用法及代码示例
- Ruby Open3.pipeline_start用法及代码示例
- Ruby OpenStruct.ostruct[name]用法及代码示例
- Ruby Option.level用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 OpenURI模块。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。