読者です 読者をやめる 読者になる 読者になる

脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

[Ruby]Rubyでcurlするときのgemのcurbの使い方

curbの使い方

curbとはrubyのコード内でcurlコマンドを使えるようにするgemです。github.com

なかなか日本語ではドキュメントがないので、APIに接続する際のコードを例にあげておきます。

GET

require 'curb'

endpoint = 'https://hogehoge.com' # change for yourself
action = '/get_information' # change for yourself

res = Curl.get("#{endpoint}#{action}") do |res|
  res.enable_cookies = true
  res.cookiefile = File.join(File.dirname(__FILE__), "cookies")
  res.cookiejar = File.join(File.dirname(__FILE__), "cookies")
end

return res.body_str

POST

Ex.) ログインなどでユーザ情報と共におくる場合など

require 'curb'

endpoint = 'https://hogehoge.com' # change for yourself
action = '/auth' # change for yourself

res = Curl.post("#{endpoint}#{action}", user_info) do |res|
  res.enable_cookies = true 
  res.cookiejar = File.join(File.dirname(__FILE__), "cookies")
end

return res.body_str


  • 呼び出すときのクラス名はCurbではなく、Curlです
  • 通常はcookieを使用しない(false)になっているので、明示的にtrueで指定します
  • 今回はcookieをcookiesというファイルに保存している場合を想定しています
  • 最後にAPIの返答のbodyを指定して返せばOKです。