Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > net/httpライブラリ > Net::HTTPクラス

class Net::HTTP

クラスの継承リスト: Net::HTTP < Object < Kernel
aliases: HTTPSession

要約

HTTP のクライアントのためのクラスです。

目次

特異メソッド
Proxy default_port http_default_port get get_print get_response https_default_port is_version_1_1? version_1_1? is_version_1_2? version_1_2? new post_form proxy_address proxy_class? proxy_pass proxy_port proxy_user start version_1_1 version_1_2
インスタンスメソッド
active? started? address close_on_empty_response close_on_empty_response= copy delete finish get get2 request_get head head2 request_head lock mkcol move open_timeout open_timeout= options port post post2 request_post propfind proppatch proxy? proxy_address proxyaddr proxy_pass proxy_port proxyport proxy_user put put2 request_put read_timeout read_timeout= request send_request set_debug_output start trace unlock use_ssl?

特異メソッド

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 経由で接続します。
}
[PARAM] address:
プロクシのホスト名を文字列で与えます。
[PARAM] port:
プロクシのポート番号を与えます。
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) で指定するかのいずれかです。

[PARAM] uri:
データの取得対象を URI で指定します。
[PARAM] host:
接続先のホストを文字列で指定します。
[PARAM] path:
データの存在するパスを文字列で指定します。
[PARAM] port:
接続するポートを整数で指定します。

[SEE_ALSO] Net::HTTP#get

get_print(uri) -> ()[permalink][rdoc]
get_print(host, path, port = 80) -> ()

指定した対象から HTTP でエンティティボディを取得し、 $stdout に出力します。

対象の指定方法は URI で指定するか、 (host, port, path) で指定するかのいずれかです。

[PARAM] uri:
データの取得対象を URI で指定します。
[PARAM] host:
接続先のホストを文字列で指定します。
[PARAM] path:
データの存在するパスを文字列で指定します。
[PARAM] port:
接続するポートを整数で指定します。

[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) で指定するかのいずれかです。

[PARAM] uri:
データの取得対象を URI で指定します。
[PARAM] host:
接続先のホストを文字列で指定します。
[PARAM] path:
データの存在するパスを文字列で指定します。
[PARAM] port:
接続するポートを整数で指定します。

[SEE_ALSO] Net::HTTP#get

https_default_port -> Integer[permalink][rdoc]

HTTPS のデフォルトポート (443) を返します。

version_1_1? -> bool[permalink][rdoc]
is_version_1_1? -> bool

ライブラリの動作がバージョン1.1互換である場合に真を返します。

[SEE_ALSO] Net::HTTP.version_1_1, Net::HTTP.version_1_2 Net::HTTP.version_1_2?

version_1_2? -> bool[permalink][rdoc]
is_version_1_2? -> bool

ライブラリの動作がバージョン1.2互換である場合に真を返します。

[SEE_ALSO] Net::HTTP.version_1_1, 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 コネクションを張りません。

[PARAM] address:
接続するホスト名を文字列で指定します。
[PARAM] port:
接続するポート番号を指定します。
[PARAM] proxy_addr:
プロクシのホスト名を指定します。省略した場合には直接接続します。
[PARAM] proxy_port:
プロクシのホスト名を指定します。
[PARAM] proxy_user:
プロクシの認証のユーザ名を指定します。省略した場合には認証はなされません。
[PARAM] proxy_pass:
プロクシの認証のパスワードを指定します。
post_form(uri, params) -> Net::HTTPResponse[permalink][rdoc]

URI で指定した対象に フォームのデータを HTTP で POST します。

送るデータは params に文字列から文字列への Hash として 渡します。

[PARAM] uri:
POST する対象を URI で指定します。
[PARAM] params:
POST するデータです。
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)
[PARAM] address:
接続するホスト名を文字列で指定します。
[PARAM] port:
接続するポート番号を指定します。
[PARAM] proxy_addr:
プロクシのホスト名を指定します。省略した場合には直接接続します。
[PARAM] proxy_port:
プロクシのホスト名を指定します。
[PARAM] proxy_user:
プロクシの認証のユーザ名を指定します。省略した場合には認証はなされません。
[PARAM] proxy_pass:
プロクシの認証のパスワードを指定します。

[SEE_ALSO] Net::HTTP.new, Net::HTTP#start

version_1_1 -> ()[permalink][rdoc]

ライブラリの動作をバージョン1.1互換にします。

[SEE_ALSO] Net::HTTP.version_1_2, Net::HTTP.version_1_1? Net::HTTP.version_1_2?

version_1_2 -> ()[permalink][rdoc]

ライブラリの動作をバージョン1.2互換、つまり 通常の動作にします。

[SEE_ALSO] Net::HTTP.version_1_1, 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]

レスポンスがボディを持っていない場合にコネクションを 閉じるかどうかを設定します。

[PARAM] bool:
レスポンスがボディを持っていない場合にコネクションを 閉じるかどうか指定します。

[SEE_ALSO] Net::HTTP#close_on_empty_response

copy(path, initheader = nil) -> Net::HTTPResponse[permalink][rdoc]

サーバの path に COPY リクエストを ヘッダを initheader として送ります。

レスポンスを Net::HTTPResponse のオブジェクト で返します。

[PARAM] path:
リクエストを送るパスを文字列で与えます。
[PARAM] initheader:
リクエストのヘッダを「文字列=>文字列」の ハッシュで与えます。

[SEE_ALSO] Net::HTTP::Copy

delete(path, initheader = nil) -> Net::HTTPResponse[permalink][rdoc]

サーバの path に DELETE リクエストを ヘッダを initheader として送ります。

レスポンスを Net::HTTPResponse のオブジェクト で返します。

[PARAM] path:
リクエストを送るパスを文字列で与えます。
[PARAM] initheader:
リクエストのヘッダを「文字列=>文字列」の ハッシュで与えます。

[SEE_ALSO] Net::HTTP::Delete

finish -> ()[permalink][rdoc]

HTTP セッションを終了します。セッション開始前にこのメソッドが 呼ばれた場合は例外 IOError を発生します。

[EXCEPTION] 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 << ボディの断片」を実行します。

[PARAM] path:
取得するエンティティのパスを文字列で指定します。
[PARAM] header:
リクエストの HTTP ヘッダをハッシュで指定します。
[PARAM] 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 オブジェクトをブロックに渡します。 大きなサイズのボディを一度に読みだすとまずく、 小さなサイズに分けて取りだしたい場合にはこれを利用します。

[PARAM] path:
取得するエンティティのパスを文字列で指定します。
[PARAM] header:
リクエストの HTTP ヘッダをハッシュで指定します。
# 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' = > '*/*', ... } という 形のハッシュでなければいけません。

[PARAM] path:
取得するエンティティのパスを文字列で指定します。
[PARAM] header:
リクエストの HTTP ヘッダをハッシュで指定します。

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 は空です。そのためこの動作はそれほど意味はありません。

[PARAM] path:
ヘッダを取得するエンティティのパスを 文字列で指定します。
[PARAM] header:
リクエストの HTTP ヘッダをハッシュで指定します。

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 のオブジェクト で返します。

[PARAM] path:
リクエストを送るパスを文字列で与えます。
[PARAM] body:
リクエストのボディを文字列で与えます。
[PARAM] initheader:
リクエストのヘッダを「文字列=>文字列」の ハッシュで与えます。

[SEE_ALSO] Net::HTTP::Lock

mkcol(path, body, initheader = nil) -> Net::HTTPResponse[permalink][rdoc]

サーバの path に MKCOL リクエストを ヘッダが initheader, ボディを body として送ります。

レスポンスを Net::HTTPResponse のオブジェクト で返します。

[PARAM] path:
リクエストを送るパスを文字列で与えます。
[PARAM] body:
リクエストのボディを文字列で与えます。
[PARAM] initheader:
リクエストのヘッダを「文字列=>文字列」の ハッシュで与えます。

[SEE_ALSO] Net::HTTP::Mkcol

move(path, body, initheader = nil) -> Net::HTTPResponse[permalink][rdoc]

サーバの path に MOVE リクエストを ヘッダが initheader, ボディを body として送ります。

レスポンスを Net::HTTPResponse のオブジェクト で返します。

[PARAM] path:
リクエストを送るパスを文字列で与えます。
[PARAM] body:
リクエストのボディを文字列で与えます。
[PARAM] initheader:
リクエストのヘッダを「文字列=>文字列」の ハッシュで与えます。

[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 を発生します。

[PARAM] second:
待つ秒数を指定します。

[SEE_ALSO] Net::HTTP#read_timeout, Net::HTTP#open_timeout

options(path, initheader = nil) -> Net::HTTPResponse[permalink][rdoc]

サーバの path に OPTIONS リクエストを ヘッダが initheader として送り、 レスポンスを Net::HTTPResponse のオブジェクト で返します。

[PARAM] path:
リクエストを送るパスを文字列で与えます。
[PARAM] initheader:
リクエストのヘッダを「文字列=>文字列」の ハッシュで与えます。

[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 << ボディの断片」を実行します。

[PARAM] path:
POST先のパスを文字列で指定します。
[PARAM] header:
リクエストの HTTP ヘッダをハッシュで指定します。
[PARAM] 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" を用います。

[PARAM] path:
POST先のエンティティのパスを文字列で指定します。
[PARAM] data:
POSTするデータを与えます。
[PARAM] header:
リクエストの HTTP ヘッダをハッシュで指定します。

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 のオブジェクト で返します。

[PARAM] path:
リクエストを送るパスを文字列で与えます。
[PARAM] body:
リクエストのボディを文字列で与えます。
[PARAM] initheader:
リクエストのヘッダを「文字列=>文字列」の ハッシュで与えます。

[SEE_ALSO] Net::HTTP::Propfind

proppatch(path, body, initheader = nil) -> Net::HTTPResponse[permalink][rdoc]

サーバの path に PROPPATCH リクエストを ヘッダを initheader, ボディを body として送ります。

レスポンスを Net::HTTPResponse のオブジェクト で返します。

[PARAM] path:
リクエストを送るパスを文字列で与えます。
[PARAM] body:
リクエストのボディを文字列で与えます。
[PARAM] initheader:
リクエストのヘッダを「文字列=>文字列」の ハッシュで与えます。

[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 のインスタンスです。

[PARAM] path:
取得するエンティティのパスを文字列で指定します。
[PARAM] data:
送るデータを文字列で指定します。
[PARAM] initheader:
リクエストの HTTP ヘッダをハッシュで指定します。

[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 オブジェクトをブロックに渡します。

[PARAM] path:
取得するエンティティのパスを文字列で指定します。
[PARAM] data:
送るデータを文字列で指定します。
[PARAM] initheader:
リクエストの HTTP ヘッダをハッシュで指定します。

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 を発生します。

[PARAM] second:
待つ秒数を指定します。

[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 オブジェクトをブロックに与えます。

[PARAM] request:
リクエストオブジェクトを与えます。
[PARAM] data:
リクエストのボディを文字列で与えます。
[EXCEPTION] ArgumentError:
dataを与えるべきでないリクエストでdataを 与えた場合に発生します。

[SEE_ALSO] Net::HTTP#send_request

send_request(name, path, data = nil, header = nil) -> Net::HTTPResponse[permalink][rdoc]

HTTP リクエストをサーバに送り、そのレスポンスを Net::HTTPResponse のインスタンスとして返します。

[PARAM] name:
リクエストのメソッド名を文字列で与えます。
[PARAM] path:
リクエストのパスを文字列で与えます。
[PARAM] data:
リクエストのボディを文字列で与えます。
[PARAM] header:
リクエストのヘッダをハッシュで与えます。
response = http.send_request('GET', '/index.html')
puts response.body

[SEE_ALSO] Net::HTTP#request

set_debug_output(io) -> ()[permalink][rdoc]

デバッグ出力の出力先を指定します。 このメソッドは深刻なセキュリティホールの原因 になるため、デバッグ以外では決して使わないでください。

io に nil を指定するとデバッグ出力を止めます。

[PARAM] io:
出力先を指定します。このオブジェクトは メソッド << を持っている必要があります。
http.set_debug_output($stderr)
start -> self[permalink][rdoc]
start {|http| .... } -> object

TCP コネクションを張り、HTTP セッションを開始します。 すでにセッションが開始していたら例外 IOError を発生します。

ブロックを与えた場合には自分自身をそのブロックに 渡し、ブロックが終わったときに接続を閉じます。このときは ブロックの値を返り値とします。

ブロックを与えなかった場合には自分自身を返します。 利用後にはこのオブジェクトを Net::HTTP#finish してください。

[EXCEPTION] IOError:
すでにセッションが開始していた場合に発生します。
trace(path, initheader = nil) -> Net::HTTPResponse[permalink][rdoc]

サーバの path に TRACE リクエストを ヘッダを initheader として送ります。

レスポンスを Net::HTTPResponse のオブジェクト で返します。

[PARAM] path:
リクエストを送るパスを文字列で与えます。
[PARAM] initheader:
リクエストのヘッダを「文字列=>文字列」の ハッシュで与えます。

[SEE_ALSO] Net::HTTP::Trace

unlock(path, body, initheader = nil) -> Net::HTTPResponse[permalink][rdoc]

サーバの path に UNLOCK リクエストを ヘッダを initheader, ボディを body として送ります。

レスポンスを Net::HTTPResponse のオブジェクト で返します。

[PARAM] path:
リクエストを送るパスを文字列で与えます。
[PARAM] body:
リクエストのボディを文字列で与えます。
[PARAM] initheader:
リクエストのヘッダを「文字列=>文字列」の ハッシュで与えます。

[SEE_ALSO] Net::HTTP::Unlock

use_ssl? -> bool[permalink][rdoc]

SSLを利用して接続する場合に真を返します。

net/https を使わない場合には常に偽を返します。

[SEE_ALSO] net/https, openssl