curlはAPIの疎通試験などに非常に便利なコマンドとなります。
curlを使う際によく使うオプションを解説します。
POSTリクエスト送信
curlに -X POST(または-XPOST)をつけると、POSTリクエストとなります。
POSTで送信する内容(body)を指定するのは-d ‘<parameter>=<valur>’をつけます。-dの代わりに–dataも同じ動きをします。
ちなみに、無指定の場合または-X GETをつけると、GETリクエストで送信されます。
#curl -X POST -d 'key=value' https://apixxxxxx
パラメータを複数送信したい場合は&をつけるか、または複数の-d(–date)オプションをつけます。
#curl -X POST -d 'key1=value1&key2=value2' https://apixxxxxx
#curl -X POST -d 'key1=value1' -d 'key2=value2' https://apixxxxxx
レスポンスヘッダを出力する
ヘッダのみを出力したい場合は-I(–head)を使います。
ヘッダもレスポンスも出力したい場合は-i(–include)を使います。
任意のリクエストヘッダを指定する
-H オプションで任意のリクエストヘッダを指定できます。
POSTでjsonファイルを送信する場合は、以下のようにContent-Typeを指定する必要があります。
#curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://apixxxxxx
Basic認証を行う
-u オプションで、BASIC 認証のユーザ名とパスワードを指定します。
#curl -u user:password https://apixxxxxx
または、Authorizationヘッダーに[ユーザ名:パスワード]をBASE64でエンコードして、セットしてリクエストします。
#curl -H 'Authorization: Basic <BASE64エンコードしたユーザ名:パスワード>' https://apixxxxxx
ファイルをダウンロードする
-o <path> オプションをつけると、指定された場所とファイル名でサーバ上のファイルをダウンロードすることができます。
#curl -o /home/admin/test.zip https://apixxxxxx
User-Agentを削除する
AWSのWAF設定で、AWSManagedRulesCommonRuleSetルールを私用する場合、たまにBLOCKログを発生させ、ログを確認したい場合があります。AWSManagedRulesCommonRuleSetに「NoUserAgent_HEADER」ルールがあり、リクエストに「User-Agent」ヘッダがなければBLOCKされます。以下の方法で「User-Agent」ヘッダを削除することができます。
#curl -H 'User-Agent:' https://apixxxxxx
コメント