RubyでPOST・GETする。
RubyでPOSTとかGETとかリクエストを送る方法ってちょっと調べてみても色々ありますよね。
Net::HTTP::POSTをnewしてやってるやつとか、request_post()を使ってるやつとか。
ここでは後者の方を説明します。
require 'uri' require 'net/http' uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) res = http.request_post(uri.path, params, { 'Content-Type' => 'application/x-www-form-urlencoded' })
POSTの例です。
resの前まではテンプレなので、特別なことをしないならばそのままいじらなくていいと思います。
POSTの場合urlにパラメータを含めず、代わりにrequest_postの第二引数paramsの位置に"text=hoge&id=fuga"の様な形で渡します。
当たり前ですが、ヘッダは場合によって書き換えてください。
次にGET。
require 'uri' require 'net/http' uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) res = http.request_get(uri.path + params, { 'Content-Type' => 'application/x-www-form-urlencoded' })
POSTと大体同じですが、GETの場合はパラメータをパスと一緒に第一引数に渡します。
URI.parseのときにurlにパラメータが含まれていてもuri.pathはパスしか返ってきませんので、あとからパラメータ文字列を足す必要があります。
uriからパラメータをもらってくる方法もあるかもしれませんが、私は知りません。
知っている方は教えてください!