【Linux】curlでREST APIを確認する際によく使うオプション

Linux

 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

コメント

タイトルとURLをコピーしました