set_form(params, enctype = 'application/x-www-form-urlencoded', formopt = {}) -> ()Ruby 1.9.3 から[permalink][rdoc][edit]-
POSTやPUTリクエストで使うフォームのデータを設定します。params は配列またはハッシュで指定します。ハッシュの場合は各エントリがフィールドの名前と値の組を表し、値には nil、文字列、(enctype に
'multipart/form-data'を指定した場合のみ) 読み込み用に開かれた IO ストリームを指定できます。配列の場合は各要素が[名前]、[名前, 値]、あるいは (enctype が'multipart/form-data'の場合)[名前, IO ストリーム]や[名前, IO ストリーム, オプションのハッシュ]という形のサブ配列です。enctype には
Content-Type:ヘッダフィールドに設定する値を指定します。'application/x-www-form-urlencoded'(デフォルト) か'multipart/form-data'のいずれかでなければなりません。formopt は enctype が
'multipart/form-data'のときだけ有効なオプションのハッシュで、:boundary(マルチパートメッセージの境界文字列) と:charset(フォームの文字コード) を指定できます。このメソッドを呼ぶと、実際にサーバに送るボディの内容はリクエスト送信時まで生成されないため、呼び出し直後は Net::HTTPGenericRequest#body は nil のままです。
- [PARAM]
params: - フォームのデータを配列またはハッシュで指定します。
- [PARAM]
enctype: -
Content-Type:ヘッダフィールドに設定する値を指定します。 - [PARAM]
formopt: -
enctype が
'multipart/form-data'のときのオプションです。 - [EXCEPTION]
ArgumentError: -
enctype に
'application/x-www-form-urlencoded'、'multipart/form-data'以外を指定すると発生します。
require 'net/http' uri = URI('http://www.example.com/index.html') req = Net::HTTP::Post.new(uri) req.set_form([['q', 'ruby'], ['lang', 'en']]) p req.content_type # => "application/x-www-form-urlencoded"[SEE_ALSO] Net::HTTPHeader#set_form_data
- [PARAM]