Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > net/httpライブラリ > Net::HTTPクラス
クラスの継承リスト: Net::HTTP
< Object
< Kernel
< BasicObject
aliases: HTTPSession
HTTP のクライアントのためのクラスです。
Proxy(address, port = 80) -> Class
[permalink][rdoc]Proxy 経由で http サーバに接続するためのクラスを作成し返します。
このクラスは Net::HTTP を継承しているので Net::HTTP と全く 同じように使えます。指定されたプロクシを常に経由して http サーバ に接続します。
address が nil のときは Net::HTTP クラスをそのまま返します。
例1: Net::HTTP.new を使う
require 'net/http' proxy_class = Net::HTTP::Proxy('proxy.example.com', 8080) http = proxy_class.new('www.example.org') http.start {|h| h.get('/ja/') # proxy.example.com 経由で接続します。 }
例2: Net::HTTP.start を使う
require 'net/http' proxy_class = Net::HTTP::Proxy('proxy.example.com', 8080) proxy_class.start('www.example.org') {|h| h.get('/ja/') # proxy.example.com 経由で接続します。 }
http_default_port -> Integer
[permalink][rdoc]default_port -> Integer
HTTP のデフォルトポート (80) を返します。
get(uri) -> String
[permalink][rdoc]get(host, path, port = 80) -> String
指定した対象に GET リクエストを送り、そのボディを 文字列として返します。
対象の指定方法は URI で指定するか、 (host, port, path) で指定するかのいずれかです。
[SEE_ALSO] Net::HTTP#get
get_print(uri) -> ()
[permalink][rdoc]get_print(host, path, port = 80) -> ()
指定した対象から HTTP でエンティティボディを取得し、 $stdout に出力します。
対象の指定方法は URI で指定するか、 (host, port, path) で指定するかのいずれかです。
[SEE_ALSO] Net::HTTP.get
Net::HTTP.get_print URI.parse('http://www.example.com/index.html')
もしくは
Net::HTTP.get_print 'www.example.com', '/index.html'
get_response(uri) -> Net::HTTPResponse
[permalink][rdoc]get_response(host, path = nil, port = nil) -> Net::HTTPResponse
指定した対象に GET リクエストを送り、そのレスポンスを Net::HTTPResponse として返します。
対象の指定方法は URI で指定するか、 (host, port, path) で指定するかのいずれかです。
[SEE_ALSO] Net::HTTP#get
https_default_port -> Integer
[permalink][rdoc]HTTPS のデフォルトポート (443) を返します。
version_1_1? -> false
[permalink][rdoc]is_version_1_1? -> false
何もしません。互換性のために残されており、常に false を返します。
[SEE_ALSO] Net::HTTP.version_1_2, Net::HTTP.version_1_2?
version_1_2? -> true
[permalink][rdoc]is_version_1_2? -> true
何もしません。互換性のために残されており、常に true を返します。
[SEE_ALSO] Net::HTTP.version_1_2, Net::HTTP.version_1_1?
new(address, port = 80, proxy_addr = nil, proxy_port = nil, proxy_user=nil, proxy_pass=nil) -> Net::HTTP
[permalink][rdoc]新しい Net::HTTP オブジェクトを生成します。
proxy_addr を与えるとプロクシを介して接続するオブジェクトを 生成します。このときに proxy_userを指定するとプロクシの認証が 行われます
このメソッドは TCP コネクションを張りません。
post_form(uri, params) -> Net::HTTPResponse
[permalink][rdoc]URI で指定した対象に フォームのデータを HTTP で POST します。
送るデータは params に文字列から文字列への Hash として 渡します。
proxy_address -> String|nil
[permalink][rdoc]自身が (Net::HTTP.Proxy によって作成された) プロクシ用のクラスならばプロクシのアドレスを返します。
そうでなければ nil を返します。
[SEE_ALSO] Net::HTTP.Proxy
proxy_class? -> bool
[permalink][rdoc]自身が (Net::HTTP.Proxy によって作成された) プロクシ用のクラスならば真を返し、そうでなければ偽を返します。
[SEE_ALSO] Net::HTTP.Proxy
proxy_pass -> String|nil
[permalink][rdoc]自身が (Net::HTTP.Proxy によって作成された) プロクシ用のクラスならばプロクシ認証のパスワードを返します。
そうでなければ nil を返します。
[SEE_ALSO] Net::HTTP.Proxy
proxy_port -> Integer|nil
[permalink][rdoc]自身が (Net::HTTP.Proxy によって作成された) プロクシ用のクラスならばプロクシのポート番号を返します。
そうでなければ nil を返します。
[SEE_ALSO] Net::HTTP.Proxy
proxy_user -> String|nil
[permalink][rdoc]自身が (Net::HTTP.Proxy によって作成された) プロクシ用のクラスで、かつプロクシの認証を利用する場合は プロクシ認証のユーザ名を返します。
そうでなければ nil を返します。
[SEE_ALSO] Net::HTTP.Proxy
start(address, port = 80, proxy_addr = nil, proxy_port = nil, proxy_user=nil, proxy_pass=nil) -> Net::HTTP
[permalink][rdoc]start(address, port = 80, proxy_addr = nil, proxy_port = nil, proxy_user=nil, proxy_pass=nil) {|http| .... } -> object
新しい Net::HTTP オブジェクトを生成し、 TCP コネクション、 HTTP セッションを開始します。
ブロックを与えた場合には生成したオブジェクトをそのブロックに 渡し、ブロックが終わったときに接続を閉じます。このときは ブロックの値を返り値とします。
ブロックを与えなかった場合には生成したオブジェクトを渡します。 利用後にはこのオブジェクトを Net::HTTP#finish してください。
このメソッドは以下と同じです。
Net::HTTP.new(address, port, proxy_addr, proxy_port, proxy_user, proxy_pass).start(&block)
[SEE_ALSO] Net::HTTP.new, Net::HTTP#start
version_1_2 -> true
[permalink][rdoc]何もしません。互換性のために残されており、常に true を返します。
[SEE_ALSO] Net::HTTP.version_1_1?, Net::HTTP.version_1_2?
started? -> bool
[permalink][rdoc]active? -> bool
HTTP セッションが開始されていたら真を返します。
active? は時代遅れのメソッドです。
address -> String
[permalink][rdoc]接続するアドレスを返します。
[SEE_ALSO] Net::HTTP.new
close_on_empty_response -> bool
[permalink][rdoc]レスポンスがボディを持っていない場合にコネクションを 閉じるかどうかを返します。
デフォルトでは偽(閉じない)です。
[SEE_ALSO] Net::HTTP#close_on_empty_response=
close_on_empty_response=(bool)
[permalink][rdoc]レスポンスがボディを持っていない場合にコネクションを 閉じるかどうかを設定します。
[SEE_ALSO] Net::HTTP#close_on_empty_response
copy(path, initheader = nil) -> Net::HTTPResponse
[permalink][rdoc]サーバの path に COPY リクエストを ヘッダを initheader として送ります。
レスポンスを Net::HTTPResponse のオブジェクト で返します。
[SEE_ALSO] Net::HTTP::Copy
delete(path, initheader = nil) -> Net::HTTPResponse
[permalink][rdoc]サーバの path に DELETE リクエストを ヘッダを initheader として送ります。
レスポンスを Net::HTTPResponse のオブジェクト で返します。
[SEE_ALSO] Net::HTTP::Delete
finish -> ()
[permalink][rdoc]HTTP セッションを終了します。セッション開始前にこのメソッドが 呼ばれた場合は例外 IOError を発生します。
get(path, header = nil, dest = nil) -> Net::HTTPResponse
[permalink][rdoc]get(path, header = nil, dest = nil) {|body_segment| .... } -> Net::HTTPResponse
サーバ上の path にあるエンティティを取得し、 Net::HTTPResponse のインスタンスとして返します。
header が nil でなければ、リクエストを送るときにその内容を HTTP ヘッダとして 送ります。 header は { 'Accept' = > '*/*', ... } という 形のハッシュでなければいけません。
ブロックと一緒に呼びだされたときは エンティティボディを少しずつ文字列として ブロックに与えます。このとき戻り値の Net::HTTPResponse オブジェクトは有効な body を 持ちません。
dest は時代遅れの引数です。利用しないでください。 dest を指定した場合には ボディを少しずつ取得して順次 「dest << ボディの断片」を実行します。
1.1 互換モードの場合は、レスポンスに応じて例外が発生します。 また、返り値が [レスポンスオブジェクト, そのボディ] となります。
# net/http version 1.1 response, body = http.get( '/index.html' ) # net/http version 1.2 response = http.get('/index.html') # compatible in both version response , = http.get('/index.html') response.body # compatible, using block File.open('save.txt', 'w') {|f| http.get('/~foo/', nil) do |str| f.write str end }
[SEE_ALSO] Net::HTTP#request_get
request_get(path, header = nil) -> Net::HTTPResponse
[permalink][rdoc]request_get(path, header = nil) {|response| .... } -> Net::HTTPResponse
get2(path, header = nil) -> Net::HTTPResponse
get2(path, header = nil) {|response| .... } -> Net::HTTPResponse
サーバ上の path にあるエンティティを取得します。 Net::HTTPResponse オブジェクトを返します。
header が nil でなければ、リクエストを送るときにその内容を HTTP ヘッダとして 送ります。 header は { 'Accept' = > '*/*', ... } という 形のハッシュでなければいけません。
ブロックとともに呼び出されたときは、 エンティティボディをソケットから読み出す前に、 接続を維持した状態で Net::HTTPResponse オブジェクトをブロックに渡します。 大きなサイズのボディを一度に読みだすとまずく、 小さなサイズに分けて取りだしたい場合にはこれを利用します。
# example response = http.request_get('/index.html') p response['content-type'] puts response.body # body is already read # using block http.request_get('/index.html') {|response| p response['content-type'] response.read_body do |str| # read body now print str end }
get2 は時代遅れなので使わないでください。
[SEE_ALSO] Net::HTTP#get, Net::HTTPResponse#read_body
head(path, header = nil) -> Net::HTTPResponse
[permalink][rdoc]サーバ上の path にあるエンティティのヘッダのみを取得します。 Net::HTTPResponse のインスタンスを返します。
header が nil でなければ、リクエストを送るときにその内容を HTTP ヘッダとして 送ります。 header は { 'Accept' = > '*/*', ... } という 形のハッシュでなければいけません。
1.1 互換モードの場合は、レスポンスに応じて例外が発生します。
response = nil Net::HTTP.start('some.www.server', 80) {|http| response = http.head('/index.html') } p response['content-type']
[SEE_ALSO] Net::HTTP#request_head
request_head(path, header = nil) -> Net::HTTPResponse
[permalink][rdoc]request_head(path, header = nil) {|response| .... } -> Net::HTTPResponse
head2(path, header = nil) -> Net::HTTPResponse
head2(path, header = nil) {|response| .... } -> Net::HTTPResponse
サーバ上の path にあるエンティティのヘッダのみを取得します。 Net::HTTPResponse オブジェクトを返します。
header が nil でなければ、リクエストを送るときにその内容を HTTP ヘッダとして 送ります。 header は { 'Accept' = > '*/*', ... } という 形のハッシュでなければいけません。
ブロックとともに呼び出されたときは、 Net::HTTP#request_get と同じ動作を しますが、そもそもヘッダしか要求していないので body は空です。そのためこの動作はそれほど意味はありません。
head2 は時代遅れなので使わないでください。
response = http.request_head('/index.html') p response['content-type']
[SEE_ALSO] Net::HTTP#head
lock(path, body, initheader = nil) -> Net::HTTPResponse
[permalink][rdoc]サーバの path に LOCK リクエストを ヘッダを initheader, ボディを body として送ります。
レスポンスを Net::HTTPResponse のオブジェクト で返します。
[SEE_ALSO] Net::HTTP::Lock
mkcol(path, body, initheader = nil) -> Net::HTTPResponse
[permalink][rdoc]サーバの path に MKCOL リクエストを ヘッダが initheader, ボディを body として送ります。
レスポンスを Net::HTTPResponse のオブジェクト で返します。
[SEE_ALSO] Net::HTTP::Mkcol
move(path, body, initheader = nil) -> Net::HTTPResponse
[permalink][rdoc]サーバの path に MOVE リクエストを ヘッダが initheader, ボディを body として送ります。
レスポンスを Net::HTTPResponse のオブジェクト で返します。
[SEE_ALSO] Net::HTTP::Move
open_timeout -> Integer
[permalink][rdoc]接続時に待つ最大秒数を返します。
この秒数たってもコネクションが 開かなければ例外 TimeoutError を発生します。 デフォルトは nil(タイムアウトしない)です。
[SEE_ALSO] Net::HTTP#read_timeout, Net::HTTP#open_timeout=
open_timeout=(seconds)
[permalink][rdoc]接続時に待つ最大秒数を設定します。
この秒数たってもコネクションが 開かなければ例外 TimeoutError を発生します。
[SEE_ALSO] Net::HTTP#read_timeout, Net::HTTP#open_timeout
options(path, initheader = nil) -> Net::HTTPResponse
[permalink][rdoc]サーバの path に OPTIONS リクエストを ヘッダが initheader として送り、 レスポンスを Net::HTTPResponse のオブジェクト で返します。
[SEE_ALSO] Net::HTTP::Options
port -> Integer
[permalink][rdoc]接続するポート番号を返します。
[SEE_ALSO] Net::HTTP.new
post(path, data, header = nil, dest = nil) -> Net::HTTPResponse
[permalink][rdoc]post(path, data, header = nil, dest = nil) {|body_segment| .... } -> Net::HTTPResponse
サーバ上の path にあるエンティティに対し文字列 data を POST で送ります。
返り値は Net::HTTPResponse のインスタンスです。
ブロックと一緒に呼びだされたときはエンティティボディを少しずつ文字列として ブロックに与えます。このとき戻り値の HTTPResponse オブジェクトは有効な body を 持ちません。
POST する場合にはヘッダに Content-Type: を指定する必要があります。 もし header に指定しなかったならば、 Content-Type として "application/x-www-form-urlencoded" を用います。
dest は時代遅れの引数です。利用しないでください。 dest を指定した場合には ボディを少しずつ取得して順次 「dest << ボディの断片」を実行します。
1.1 互換モードの場合は、レスポンスに応じて例外が発生します。 また、返り値が [レスポンスオブジェクト, そのボディ] となります。
例:
# net/http version 1.1 response, body = http.post('/cgi-bin/search.rb', 'query=subject&target=ruby') # version 1.2 response = http.post('/cgi-bin/search.rb', 'query=subject&target=ruby') # using block File.open('save.html', 'w') {|f| http.post('/cgi-bin/search.rb', 'query=subject&target=ruby') do |str| f.write str end }
[SEE_ALSO] Net::HTTP#request_post
request_post(path, data, header = nil) -> Net::HTTPResponse
[permalink][rdoc]request_post(path, data, header = nil) {|response| .... } -> Net::HTTPResponse
post2(path, data, header = nil) -> Net::HTTPResponse
post2(path, data, header = nil) {|response| .... } -> Net::HTTPResponse
サーバ上の path にあるエンティティに対し文字列 data を POST で送ります。 返り値は Net::HTTPResponse のインスタンスです。
header が nil でなければ、リクエストを送るときにその内容を HTTP ヘッダとして 送ります。 header は { 'Accept' = > '*/*', ... } という 形のハッシュでなければいけません。
ブロックとともに呼び出されたときは、 エンティティボディをソケットから読み出す前に、 接続を維持した状態で Net::HTTPResponse オブジェクトをブロックに渡します。
POST する場合にはヘッダに Content-Type: を指定する必要があります。 もし header に指定しなかったならば、 Content-Type として "application/x-www-form-urlencoded" を用います。
post2 は時代遅れなので使わないでください。
# 例 response = http.request_post('/cgi-bin/nice.rb', 'datadatadata...') p response.status puts response.body # body is already read # using block http.request_post('/cgi-bin/nice.rb', 'datadatadata...') {|response| p response.status p response['content-type'] response.read_body do |str| # read body now print str end }
[SEE_ALSO] Net::HTTP#post, Net::HTTPResponse#read_body
propfind(path, body, initheader = {'Depth' => '0'}) -> Net::HTTPResponse
[permalink][rdoc]サーバの path に PROPFIND リクエストを ヘッダを initheader, ボディを body として送ります。
レスポンスを Net::HTTPResponse のオブジェクト で返します。
[SEE_ALSO] Net::HTTP::Propfind
proppatch(path, body, initheader = nil) -> Net::HTTPResponse
[permalink][rdoc]サーバの path に PROPPATCH リクエストを ヘッダを initheader, ボディを body として送ります。
レスポンスを Net::HTTPResponse のオブジェクト で返します。
[SEE_ALSO] Net::HTTP::Proppatch
proxy? -> bool
[permalink][rdoc]プロクシを介して接続するなら真を返します。
[SEE_ALSO] Net::HTTP.Proxy
proxy_address -> String|nil
[permalink][rdoc]proxyaddr -> String|nil
プロクシ経由で接続する HTTP オブジェクトならプロクシのアドレス を返します。
そうでないなら nil を返します。
proxyaddr は時代遅れのメソッドです。
[SEE_ALSO] Net::HTTP.Proxy
proxy_pass -> String|nil
[permalink][rdoc]プロクシ経由で接続し、さらにプロクシのユーザ認証を する HTTP オブジェクトなら認証のパスワードを を返します。
そうでないなら nil を返します。
[SEE_ALSO] Net::HTTP.Proxy
proxy_port -> Integer|nil
[permalink][rdoc]proxyport -> Integer|nil
プロクシ経由で接続する HTTP オブジェクトならプロクシのポート番号 を返します。
そうでないなら nil を返します。
proxyport は時代遅れのメソッドです。
[SEE_ALSO] Net::HTTP.Proxy
proxy_user -> String|nil
[permalink][rdoc]プロクシ経由で接続し、さらにプロクシのユーザ認証を する HTTP オブジェクトなら認証のユーザ名を を返します。
そうでないなら nil を返します。
[SEE_ALSO] Net::HTTP.Proxy
put(path, data, initheader = nil) -> Net::HTTPResponse
[permalink][rdoc]サーバ上の path にあるエンティティに対し文字列 data を PUT で送ります。
返り値は Net::HTTPResponse のインスタンスです。
[SEE_ALSO] Net::HTTP#request_put
1.1 互換モードの場合は、レスポンスに応じて例外が発生します。
request_put(path, data, initheader = nil) -> Net::HTTPResponse
[permalink][rdoc]request_put(path, data, initheader = nil) {|response| .... } -> Net::HTTPResponse
put2(path, data, initheader = nil) -> Net::HTTPResponse
put2(path, data, initheader = nil) {|response| .... } -> Net::HTTPResponse
サーバ上の path にあるエンティティに対し文字列 data を PUT で送ります。
返り値は Net::HTTPResponse のインスタンスです。
ブロックとともに呼び出されたときは、 ボディをソケットから読み出す前に、 接続を維持した状態で Net::HTTPResponse オブジェクトをブロックに渡します。
put2 は時代遅れなので使わないでください。
[SEE_ALSO] Net::HTTP#put
read_timeout -> Integer
[permalink][rdoc]読みこみ(read(2)) 一回でブロックしてよい最大秒数 を返します。
この秒数たっても読みこめなければ例外 TimeoutError を発生します。 デフォルトは 60 (秒)です。
[SEE_ALSO] Net::HTTP#open_timeout, Net::HTTP#read_timeout=
read_timeout=(seconds)
[permalink][rdoc]読みこみ(read(2)) 一回でブロックしてよい最大秒数を 設定します。
この秒数たっても読みこめなければ例外 TimeoutError を発生します。
[SEE_ALSO] Net::HTTP#open_timeout, Net::HTTP#read_timeout
request(request, data = nil) -> Net::HTTPResponse
[permalink][rdoc]request(request, data = nil) {|response| .... } -> Net::HTTPResponse
Net::HTTPRequest オブジェクト request をサーバに送信します。
POST/PUT の時は data も与えられます (GET/HEAD などで data を与えると ArgumentError を発生します)。
ブロックとともに呼びだされたときは ソケットからボディを読みこまずに Net::HTTPResponse オブジェクトをブロックに与えます。
[SEE_ALSO] Net::HTTP#send_request
send_request(name, path, data = nil, header = nil) -> Net::HTTPResponse
[permalink][rdoc]HTTP リクエストをサーバに送り、そのレスポンスを Net::HTTPResponse のインスタンスとして返します。
response = http.send_request('GET', '/index.html') puts response.body
[SEE_ALSO] Net::HTTP#request
set_debug_output(io) -> ()
[permalink][rdoc]デバッグ出力の出力先を指定します。 このメソッドは深刻なセキュリティホールの原因 になるため、デバッグ以外では決して使わないでください。
io に nil を指定するとデバッグ出力を止めます。
http.set_debug_output($stderr)
start -> self
[permalink][rdoc]start {|http| .... } -> object
TCP コネクションを張り、HTTP セッションを開始します。 すでにセッションが開始していたら例外 IOError を発生します。
ブロックを与えた場合には自分自身をそのブロックに 渡し、ブロックが終わったときに接続を閉じます。このときは ブロックの値を返り値とします。
ブロックを与えなかった場合には自分自身を返します。 利用後にはこのオブジェクトを Net::HTTP#finish してください。
trace(path, initheader = nil) -> Net::HTTPResponse
[permalink][rdoc]サーバの path に TRACE リクエストを ヘッダを initheader として送ります。
レスポンスを Net::HTTPResponse のオブジェクト で返します。
[SEE_ALSO] Net::HTTP::Trace
unlock(path, body, initheader = nil) -> Net::HTTPResponse
[permalink][rdoc]サーバの path に UNLOCK リクエストを ヘッダを initheader, ボディを body として送ります。
レスポンスを Net::HTTPResponse のオブジェクト で返します。
[SEE_ALSO] Net::HTTP::Unlock
use_ssl? -> bool
[permalink][rdoc]SSLを利用して接続する場合に真を返します。
net/https を使わない場合には常に偽を返します。