Ruby入門 PART11 (HTTPアクセス) (全11回)

open-uri
ファイルのように簡単にHTTP/FTPにアクセスできる
1 2 3 4 5 |
require 'open-uri' open('https://google.co.jp') do |f| print f.read end |
open_uriメソッドを使えば、プロキシの使用、BASIC認証、SSLのCA証明書の指定などが可能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
require 'open-uri' require 'pp' # String IO Ojbectを返す(文字列にIOと同じインタフェースを持たせるクラス) begin sio = OpenURI.open_uri('https://google.co.jp', {:read_timeout => 0.01}) # タイムアウト指定 p sio.read rescue => ex # タイムアウト puts ex.message pp ex.backtrace.reverse end # ブロックを渡しても良い OpenURI.open_uri('https://google.co.jp') do |sio| p sio.read end |
net/http
HTTPセッションを使うことも可能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
require 'uri' require 'net/http' uri = URI.parse('http://www.google.co.jp/') Net::HTTP.start(uri.host, uri.port) do |http| # HTTPセッションを継続して複数のページを取得できる get_http = lambda do |path| response = http.get(path) case response.code.to_i when 200 response.body else %(#{response.code} #{response.message}) end end print get_http.call('/') print get_http.call('/intl/ja/about/') end # getを使うとシンプルに取得できる print Net::HTTP.get(uri) |
関連記事一覧
- タグ:
- Ruby