Ruby 3.3 リファレンスマニュアル > ライブラリ一覧 > net/httpライブラリ > Net::HTTPクラス > post2
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