要約
HTTP レスポンスを表現するクラスです。 Net::HTTP クラスは実際には HTTPResponse のサブクラスを返します。
目次
- 特異メソッド
- インスタンスメソッド
- 定数
継承しているメソッド
- Net::HTTPHeaderから継承しているメソッド
- 
  - []
- []=
- add_field
- basic_auth
- canonical_each
- chunked?
- content_length
- content_length=
- content_range
- content_type
- content_type=
- delete
- each
- each_capitalized
- each_capitalized_name
- each_header
- each_key
- each_name
- each_value
- fetch
- form_data=
- get_fields
- key?
- length
- main_type
- method
- proxy_basic_auth
- range
- range=
- range_length
- set_content_type
- set_form_data
- set_range
- size
- sub_type
- type_params
 
特異メソッド
- body_permitted? -> bool[permalink][rdoc][edit]
- 
エンティティボディを含むことが許されているレスポンスクラスならば真を、そうでなければ偽を返します。 例 require 'net/http' Net::HTTPSuccess.body_permitted? # => true Net::HTTPNotModified.body_permitted? # => false
インスタンスメソッド
- body -> String | () | nil[permalink][rdoc][edit]
- entity -> String | () | nil
- 
エンティティボディを返します。 レスポンスにボディがない場合には nil を返します。 Net::HTTPResponse#read_body をブロック付きで呼んだ場合にはこのメソッドはNet::ReadAdapter のインスタンスを返しますが、これは使わないでください。 entity は obsolete です。 例 require 'net/http' uri = "http://www.example.com/index.html" response = Net::HTTP.get_response(URI.parse(uri)) response.body[0..10] # => "<!doctype h"
- code -> String[permalink][rdoc][edit]
- 
HTTP のリザルトコードです。例えば '302' などです。 この値を見ることでレスポンスの種類を判別できますが、レスポンスオブジェクトがどのクラスのインスタンスかを見ることでもレスポンスの種類を判別できます。 例 require 'net/http' uri = "http://www.example.com/index.html" response = Net::HTTP.get_response(URI.parse(uri)) response.code # => "200"
- response -> self[permalink][rdoc][edit]
- header -> self
- reader_header -> self
- 
互換性を保つためだけに導入されたメソッドです。使わないでください。 自分自身を返します。 
- http_version -> String[permalink][rdoc][edit]
- 
サーバがサポートしている HTTP のバージョンを文字列で返します。 例 require 'net/http' uri = "http://www.example.com/index.html" response = Net::HTTP.get_response(URI.parse(uri)) response.http_version # => "1.1"
- message -> String[permalink][rdoc][edit]
- msg -> String
- 
HTTP サーバがリザルトコードに付加して返すメッセージです。例えば 'Not Found' などです。 msg は obsolete です。使わないでください。 例 require 'net/http' uri = "http://www.example.com/index.html" response = Net::HTTP.get_response(URI.parse(uri)) response.message # => "OK"
- read_body(dest=nil) -> String|nil[permalink][rdoc][edit]
- read_body {|str| .... } -> ()
- 
ブロックを与えなかった場合にはエンティティボディを文字列で返します。ブロックを与えた場合にはエンティティボディを少しずつ取得して順次ブロックに文字列で与えます。 レスポンスがボディを持たない場合には nil を返します。 例1 ブロックを与えずに一度に結果取得 require 'net/http' uri = "http://www.example.com/index.html" response = Net::HTTP.get_response(URI.parse(uri)) response.read_body[0..10] # => "<!doctype h"例2 ブロックを与えて大きいファイルを取得 require 'net/http' uri = URI.parse('http://www.example.com/path/to/big.file') Net::HTTP.start(uri.host, uri.port) do |http| File.open("/path/to/big.file", "w") do |f| # Net::HTTP#request_get と Net::HTTPResponse#read_body で少しずつ読み書き。メモリ消費が少ない。 http.request_get(uri.path) do |response| response.read_body do |s| f.write(s) end end end end一度ブロックを与えずにこのメソッドを呼んだ場合には、次からはすでに読みだしたボディを文字列として返します。また一度ブロックを与えてこのメソッドを呼んだ場合には、次からは Net::ReadAdapter のインスタンスが返ってきますが、その場合はそのオブジェクトは使わないでください。 dest は obsolete です。使わないでください。 dest を指定した場合にはボディを少しずつ取得して順次「dest << ボディの断片」を実行します。 - [PARAM] dest:
- obsoleteな引数です。利用しないでください。
 [SEE_ALSO] Net::HTTP#request_get 
- value -> nil[permalink][rdoc][edit]
- 
レスポンスが 2xx(成功)でなかった場合に、対応する例外を発生させます。 - [EXCEPTION] HTTPError:
- レスポンスが 1xx であるか、 net/http が知らない種類のレスポンスである場合に発生します。
- [EXCEPTION] HTTPRetriableError:
- レスポンスが 3xx である場合に発生します。
- [EXCEPTION] HTTPServerException:
- レスポンスが 4xx である場合に発生します。
- [EXCEPTION] HTTPFatalError:
- レスポンスが 5xx である場合に発生します。
 例 レスポンスが 2xx(成功) require 'net/http' uri = "http://www.example.com/index.html" response = Net::HTTP.get_response(URI.parse(uri)) response.value # => nil例 レスポンスが 2xx以外 require 'net/http' uri = "http://www.example.com/invalid.html" response = Net::HTTP.get_response(URI.parse(uri)) begin response.value rescue => e e.class # => Net::HTTPServerException e.message # => 404 "Not Found" end
定数
- CODE_CLASS_TO_OBJ -> Hash[permalink][rdoc][edit]
- 
HTTP レスポンスステータスコードの最初の数字からレスポンスのクラス(分類)をあらわすクラスへのハッシュです。 require 'net/http' Net::HTTPResponse::CODE_CLASS_TO_OBJ['3'] # => Net::HTTPRedirection
- CODE_TO_OBJ -> Hash[permalink][rdoc][edit]
- 
HTTP レスポンスステータスコードから対応するクラスへのハッシュです。 require 'net/http' Net::HTTPResponse::CODE_TO_OBJ['404'] # => Net::HTTPNotFound