当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby OpenURI模块用法及代码示例


本文简要介绍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-lang.org大神的英文原创作品 OpenURI模块。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。