あけましておめでとうございます。今年もよろしくお願いします。 curlコマンドのオプションをいろいろ調べる機会(これ)があったので、調べてまとめました。実際curlコマンドめっちゃ使うと思うので、よき学びでした。 サムネイルは、「カール」と聞いて一番最初に思い浮かんだのがバイセップスカールだったので…。
主要そうな(?)curlコマンドのオプション
-o <file> / --output <file>と-O / --remote-name
--outputはcurlで取得したデータを<file>で指定したファイル名でファイルを保存する。--remote-nameはファイル名を指定せず、URLの末尾のファイル名でファイルを保存する。
複数のファイルのダウンロードも可能。
$ curl -O http://example.com/file1-1.tar.gz \
-O http://example.com/file2-2.tar.gz$ curl -o file1.tar.gz http://example.com/file1-1.tar.gz \
-o file2 http://example.com/file2-2.tar.gz-d "<key-value data>" / --data "<key-value data>"と--data-urlencode "<key-value data>"
--dataオプションを指定すると、curlはPOSTでリクエストを送る。key=valueの形式で指定された<key-value data>がリクエストボディに設定される。
$ curl -d "key=\"value\"" http://example.comContent-Typeヘッダにapplication/x-www-form-urlencodedが設定されている場合、必要に応じて文字をURLエンコードしてから送る。
-c <cookie file> / --cookie-jar <cookie file> と -b <cookie file> / --cookie <cookie file>
--cookie-jarでファイルにcookieを保存し、--cookieでそのファイルを利用する。
$ curl --cookie-jar cookie.txt http://httpbin.org/cookies/set/Name/Value
$ curl --cookie cookie.txt http://httpbin.org/cookies
{"cookies":{"Name":"Value"}}-H "<header info>" / --header "<header info>"
--headerでリクエストにヘッダー情報を付与することができる。例えばContent-tTypeでjsonを指定してpostする場合は次のようになる。
$ curl -H "Content-Type: application/json" -d "{\"name\": \"hoge\"}" "https://httpbin.org/post"-X <method> / --request <method>
curlは、-requestでメソッドを指定しなかった場合GETメソッドでリクエストを発行する。GET以外のメソッドを指定したい場合は--requestオプションを使う。
$ curl -X PUT -d "name=update-name" http://example.com-u / --user
--userは、認証用のユーザーを設定するためのオプション。デフォルトではBasic認証で使えるようになっている
curl --user username:password http://www.example.com/shell scriptでよく使われてそうな(?)curlコマンドのオプション
-s / silent
--silentオプションを付けると、ダウンロードの進捗やエラーが出力されなくなる。shell scriptでcurlを利用するときに、不要な出力を表示しなくないときに使う。
-f / --fail
--failオプションを付けると、エラーのレスポンスが返ってきたときに何も表示されなくなる。shell scriptでcurlを利用してエラーが返ってきたときにエラーページのhtmlを返されても利用しない場合が多いので、そういうときに使うオプション。
-L / --location
curlは、リダイレクト設定されているURLにアクセスしたとき、デフォルトではリダイレクト先のURLにはリクエストを発行しない。リダイレクトされている場合にリダイレクト先にもリクエストを発行したい場合は--locationオプションを付ける。
