module OpenURI

OpenURI ist ein einfach zu bedienender Wrapper für Net::HTTP, Net::HTTPS und Net::FTP.

Beispiel

Es ist möglich, eine http-, https- oder ftp-URL so zu öffnen, als wäre sie eine Datei.

URI.open("https://ruby-lang.de/") {|f|
  f.each_line {|line| p line}
}

Die geöffnete Datei hat mehrere Getter-Methoden für ihre Metainformationen, da sie von OpenURI::Meta erweitert wird.

URI.open("https://ruby-lang.de/en") {|f|
  f.each_line {|line| p line}
  p f.base_uri         # <URI::HTTP:0x40e6ef2 URL:https://ruby-lang.de/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
}

Zusätzliche Headerfelder können durch ein optionales Hash-Argument angegeben werden.

URI.open("https://ruby-lang.de/en/",
  "User-Agent" => "Ruby/#{RUBY_VERSION}",
  "From" => "foo@bar.invalid",
  "Referer" => "https://ruby-lang.de/") {|f|
  # ...
}

Umgebungsvariablen wie http_proxy, https_proxy und ftp_proxy sind standardmäßig aktiv. Hier deaktivieren wir Proxy

URI.open("https://ruby-lang.de/en/", :proxy => nil) {|f|
  # ...
}

Siehe OpenURI::OpenRead.open und URI.open für weitere verfügbare Optionen.

URI-Objekte können auf ähnliche Weise geöffnet werden.

uri = URI.parse("https://ruby-lang.de/en/")
uri.open {|f|
  # ...
}

URI-Objekte können direkt gelesen werden. Der zurückgegebene String wird ebenfalls von OpenURI::Meta erweitert.

str = uri.read
p str.base_uri
Autor

Tanaka Akira <akr@m17n.org>