Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > net/httpライブラリ > Net::HTTPResponseクラス
クラスの継承リスト: Net::HTTPResponse < Net::HTTPHeader < Object < Kernel < BasicObject
HTTP レスポンスを表現するクラスです。 Net::HTTP クラスは実際には HTTPResponse のサブクラスを返します。
body_permitted? -> bool
[permalink][rdoc]エンティティボディを含むことが許されているレスポンスクラス ならば真を、そうでなければ偽を返します。
body -> String | () | nil
[permalink][rdoc]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]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]header -> self
reader_header -> self
互換性を保つためだけに導入されたメソッドです。 使わないでください。
自分自身を返します。
http_version -> String
[permalink][rdoc]サーバがサポートしている 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]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]read_body {|str| .... } -> ()
ブロックを与えなかった場合にはエンティティボディを 文字列で返します。 ブロックを与えた場合には エンティティボディを少しずつ取得して順次ブロックに 文字列で与えます。
レスポンスがボディを持たない場合には nil を返します。
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"
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 << ボディの断片」を実行します。
[SEE_ALSO] Net::HTTP#request_get
value -> nil
[permalink][rdoc]レスポンスが 2xx(成功)でなかった場合に、対応する 例外を発生させます。
require 'net/http'
uri = "http://www.example.com/index.html"
response = Net::HTTP.get_response(URI.parse(uri))
response.value # => nil
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