模組 OpenURI

OpenURINet::HTTP、Net::HTTPS 和 Net::FTP 的易於使用的包裝器。

範例

可以開啟 http、https 或 ftp URL,就像開啟檔案一樣

URI.open("http://www.ruby-lang.org/") {|f|
  f.each_line {|line| p line}
}

開啟的檔案有幾個用於其元資訊的 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
}

可以透過選擇性的 hash 參數指定其他標頭欄位。

URI.open("http://www.ruby-lang.org/en/",
  "User-Agent" => "Ruby/#{RUBY_VERSION}",
  "From" => "[email protected]",
  "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.openURI.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 <[email protected]>

常數

選項
VERSION