class Net::HTTP::Propfind + Net::HTTPRequest + Net::HTTPGenericRequest + Net::HTTPHeader
クラスの継承リスト: Net::HTTP::Propfind < Net::HTTPRequest < Net::HTTPGenericRequest < Net::HTTPHeader < Object < Kernel < BasicObject
要約
HTTP の PROPFIND リクエストを表すクラスです。
特異メソッド
new(path, initheader = nil) -> Net::HTTPRequest
-
HTTP リクエストオブジェクトを生成します。
initheader でリクエストヘッダを指定することができます。 {ヘッダフィールド名(文字列)=>その中身(文字列)} という Hash を用います。
- [PARAM] path:
- リクエストする path を文字列で与えます。
- [PARAM] initheader:
- リクエストヘッダをハッシュで指定します。
インスタンスメソッド
self[key] -> String|nil
-
key ヘッダフィールドを返します。
たとえばキー 'content-length' に対しては '2048' のような文字列が得られます。キーが存在しなければ nil を返します。
一種類のヘッダフィールドが一つのヘッダの中に複数存在する 場合にはそれを全て ", " で連結した文字列を返します。 key は大文字小文字を区別しません。
- [PARAM] key:
- ヘッダフィール名を文字列で与えます。
[SEE_ALSO] Net::HTTPHeader#[]=, Net::HTTPHeader#add_field, Net::HTTPHeader#get_fields
self[key] = val
-
key ヘッダフィールドに文字列 val をセットします。
key に元々設定されていた値は破棄されます。 key は大文字小文字を区別しません。 val に nil を与えるとそのフィールドを削除します。
- [PARAM] key:
- ヘッダフィール名を文字列で与えます。
- [PARAM] val:
- keyで指定したフィールドにセットする文字列を与えます。
[SEE_ALSO] Net::HTTPHeader#[], Net::HTTPHeader#add_field, Net::HTTPHeader#get_fields
add_field(key, val) -> ()
-
key ヘッダフィールドに val を追加します。
key に元々設定されていた値は破棄されず、それに val 追加されます。
- [PARAM] key:
- ヘッダフィール名を文字列で与えます。
- [PARAM] val:
- keyで指定したフィールドに追加する文字列を与えます。
[SEE_ALSO] Net::HTTPHeader#[], Net::HTTPHeader#[]=, Net::HTTPHeader#get_fields
例:
request.add_field 'X-My-Header', 'a' p request['X-My-Header'] #=> "a" p request.get_fields('X-My-Header') #=> ["a"] request.add_field 'X-My-Header', 'b' p request['X-My-Header'] #=> "a, b" p request.get_fields('X-My-Header') #=> ["a", "b"] request.add_field 'X-My-Header', 'c' p request['X-My-Header'] #=> "a, b, c" p request.get_fields('X-My-Header') #=> ["a", "b", "c"]
basic_auth(account, password) -> ()
-
Authorization: ヘッダを BASIC 認証用にセットします。
- [PARAM] account:
- アカウント名を文字列で与えます。
- [PARAM] password:
- パスワードを文字列で与えます。
body -> String
-
サーバに送るリクエストのエンティティボディを返します。
[SEE_ALSO] Net::HTTPGenericRequest#body=
body=(body)
-
サーバに送るリクエストのエンティティボディを文字列で設定します。
- [PARAM] body:
- 設定するボディを文字列で与えます。
[SEE_ALSO] Net::HTTPGenericRequest#body
body_exist? -> bool
-
このメソッドは obsolete です。
body_stream -> object
body_stream=(f)
-
サーバに送るリクエストのエンティティボディを IO オブジェクトなどのストリームで設定します。 f は read(size) メソッドが定義されている必要があります。
- [PARAM] f:
- エンティティボディのデータを得るストリームオブジェクトを与えます。
each_capitalized {|name, value| .... } -> ()
canonical_each {|name, value| .... } -> ()
-
ヘッダフィールドの正規化名とその値のペアを ブロックに渡し、呼びだします。
正規化名は name に対し
name.downcase.split(/-/).capitalize.join('-')
で求まる文字列です。
chunked? -> bool
-
Transfer-Encoding: ヘッダフィールドが "chunked" である 場合に真を返します。
Transfer-Encoding: ヘッダフィールドが存在しなかったり、 "chunked" 以外である場合には偽を返します。
content_length -> Integer|nil
-
Content-Length: ヘッダフィールドの表している値を整数で返します。
ヘッダが設定されていない場合には nil を返します。
- [EXCEPTION] Net::HTTPHeaderSyntaxError:
- フィールドの値が不正である場合に 発生します。
content_length=(len)
-
Content-Length: ヘッダフィールドに値を設定します。
len に nil を与えると Content-Length: ヘッダフィールドを 削除します。
- [PARAM] len:
- 設定する値を整数で与えます。
content_range -> Range|nil
-
Content-Range: ヘッダフィールドの値を Range で返します。 Range の表わす長さは Net::HTTPHeader#range_length で得られます。
ヘッダが設定されていない場合には nil を返します。
content_type -> String|nil
-
"text/html" のような Content-Type を表す 文字列を返します。
Content-Type: ヘッダフィールドが存在しない場合には nil を返します。
content_type=(type)
set_content_type(type, params = {})
-
type と params から Content-Type: ヘッダフィールドの 値を設定します。
- [PARAM] type:
- メディアタイプを文字列で指定します。
- [PARAM] params:
- パラメータ属性をハッシュで指定します。
delete(key) -> String | nil
-
key ヘッダフィールドを削除します。
- [PARAM] key:
- 削除するフィールド名
- [RETURN]
- 取り除かれたフィールドの値を返します。 key ヘッダフィールドが存在しなかった場合には nil を返します。
each {|name, val| .... } -> ()
each_header {|name, val| .... } -> ()
-
保持しているヘッダ名とその値をそれぞれ ブロックに渡して呼びだします。
ヘッダ名は小文字で統一されます。 val は ", " で連結した文字列がブロックに渡されます。
each_capitalized_name {|name| .... } -> ()
-
保持しているヘッダ名を正規化 ('x-my-header' -> 'X-My-Header') して、ブロックに渡します。
each_name {|name| ... } -> ()
each_key {|name| ... } -> ()
-
保持しているヘッダ名をブロックに渡して呼びだします。
ヘッダ名は小文字で統一されます。
each_value {|value| .... } -> ()
-
保持しているヘッダの値をブロックに渡し、呼びだします。
渡される文字列は ", " で連結したものです。
fetch(key) -> String
fetch(key, default) -> String
fetch(key) {|hash| .... } -> String
-
key ヘッダフィールドを返します。
たとえばキー 'content-length' に対しては '2048' のような文字列が得られます。キーが存在しなければ nil を返します。
該当するキーが登録されてい ない時には、引数 default が与えられていればその値を、ブロッ クが与えられていればそのブロックを評価した値を返します。
一種類のヘッダフィールドが一つのヘッダの中に複数存在する 場合にはそれを全て ", " で連結した文字列を返します。 key は大文字小文字を区別しません。
- [PARAM] key:
- ヘッダフィール名を文字列で与えます。
- [PARAM] default:
- 該当するキーが登録されていない時の返り値を指定します。
- [EXCEPTION] IndexError:
- 引数defaultもブロックも与えられてない時、キーの探索に 失敗すると発生します。
[SEE_ALSO] Net::HTTPHeader#[]
form_data=(params)
set_form_data(params, sep = '&') -> ()
-
HTMLのフォームのデータ params から ヘッダフィールドとボディを設定します。
ヘッダフィールド Content-Type: には 'application/x-www-form-urlencoded' が設定されます。
- [PARAM] params:
- HTML のフォームデータの Hash を与えます。
- [PARAM] sep:
- データのセパレータを文字列で与えます。
get_fields(key) -> [String]
-
key ヘッダフィールドの値 (文字列) を配列で返します。
たとえばキー 'content-length' に対しては ['2048'] のような 文字列が得られます。一種類のヘッダフィールドが一つのヘッダの中 に複数存在することがありえます。 key は大文字小文字を区別しません。
- [PARAM] key:
- ヘッダフィール名を文字列で与えます。
[SEE_ALSO] Net::HTTPHeader#[], Net::HTTPHeader#[]=, Net::HTTPHeader#add_field,
key?(key) -> bool
-
key というヘッダフィールドがあれば真を返します。 key は大文字小文字を区別しません。
- [PARAM] key:
- 探すヘッダフィールド名を文字列で与えます。
size -> Integer
length -> Integer
-
このメソッドは obsolete です。
ヘッダフィールドの数を返します。
main_type -> String|nil
-
"text/html" における "text" のようなタイプを表す 文字列を返します。
Content-Type: ヘッダフィールドが存在しない場合には nil を返します。
method -> String
-
リクエストの HTTP メソッドを文字列で返します。
method -> String
-
リクエストの HTTP メソッドを文字列で返します。
path -> String
-
リクエストする path を文字列で返します。
proxy_basic_auth(account, password) -> ()
-
Proxy 認証のために Proxy-Authorization: ヘッダをセットします。
- [PARAM] account:
- アカウント名を文字列で与えます。
- [PARAM] password:
- パスワードを文字列で与えます。
range -> Range|nil
-
Range: ヘッダの示す範囲を Range オブジェクトで返します。
ヘッダにない場合は nil を返します。
- [EXCEPTION] Net::HTTPHeaderSyntaxError:
- Range:ヘッダの中身が規格通り でない場合に発生します。
range=(r)
range=(n)
set_range(i, len) -> ()
set_range(r) -> ()
set_range(n) -> ()
-
範囲を指定してエンティティを取得するためのヘッダ Range: をセットします。
以下は同じことを表しています。
req.range = 0..1023 req.range = 0...1024 req.range = 1024 req.set_range(0, 1024) req.set_range(0..1023) req.set_range(0...1024) req.set_range(1024)
特別な場合として、 n に負数を与えた場合にnは最初から(-n)バイトまでの範囲を表します。 r を x..-1 とした場合には、x が正ならば x バイト目から最後までの範囲を、 x が負ならば最初から x バイト目までの範囲を表します。
- [PARAM] r:
- 範囲を Range オブジェクトで与えます。
- [PARAM] i:
- 範囲の始点を整数で与えます。
- [PARAM] len:
- 範囲の長さを整数で与えます。
- [PARAM] n:
- 0からの長さを整数で与えます。
range_length -> Integer|nil
-
Content-Range: ヘッダフィールドの表している長さを整数で返します。
ヘッダが設定されていない場合には nil を返します。
- [EXCEPTION] Net::HTTPHeaderSyntaxError:
- Content-Range: ヘッダフィールド の値が不正である場合に 発生します。
request_body_permitted? -> bool
-
リクエストにエンティティボディを一緒に送ることが許されている HTTP メソッド (POST など)の場合真を返します。
response_body_permitted? -> bool
-
サーバからのレスポンスにエンティティボディを含むことが許されている HTTP メソッド (GET, POST など)の場合真を返します。
sub_type -> String|nil
-
"text/html" における "html" のようなサブタイプを表す 文字列を返します。
Content-Type: ヘッダフィールドが存在しない場合には nil を返します。
type_params -> Hash
-
Content-Type のパラメータを {"charset" => "iso-2022-jp"} という形の Hash で返します。
Content-Type: ヘッダフィールドが存在しない場合には 空のハッシュを返します。