2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CURLの組み立て方について

Last updated at Posted at 2022-06-12

CURLの書き方について

新しい職場になって、今までほぼ使わなかったcurlコマンドを打つことが増えたので
コマンドの組み立て方について書いていこうと思います。

curlの基本構文

curlの入力書式は以下になります。

curl [options] [URL]

メソッドがGETかそれ以外か?

GETの場合

何も必要ありません。

それ以外の場合

オプションで -X メソッド名 を追加します。
POSTの場合であれば、-X POSTを指定します。
curl -X POST ...

リクエストヘッダーがあるか?

ある場合

オプションで -H を追加します。

curl -H "Content-Type: application/json" ...

プロキシの設定が必要か?

プロキシが必要な場合 -x プロキシサーバ:ポート番号が必要です。

curl -x プロキシサーバ:ポート番号 ...

リクエストbodyパラメータはjson形式かurl-encode方式か?

リクエストbodyパラメータはいくつあるか?

jsonの場合

-dオプションを付けてJSON形式で設定を行います。。

-d '{"parameter1":"value1", "parameter2":"value2"}'

url-encode方式で1つの場合

urlencode形式の場合は、URLにパラメータを仕込むことになります。
1つの場合であれば、以下のように?parametr1=value1となるので、特に設定は必要ありません。

curl ... http://....?parameter1=value1

url-encode方式で2つ以上の場合

urlencode形式の場合は、URLにパラメータを仕込むことになります。
2つ以上の場合であれば、2つ目以降は&でつなげます。
つまり、URLは?parameter1=value1&parameter2=value2のようになります。

問題になるのは、curlでは&は予約語なのでエスケープシーケンスする必要があることです。
つまり単純にURLを送ろうとするとエラーが起きるわけです。

Urlencode方式であれば、以下のように文字列として認識させてあげれば2つ以上のパラメータでも送ることができます。

curl ... "http://....?parameter1=value1&parameter2=value2"

詳細なログがほしいか?

詳細なログが欲しい場合は -v オプションを指定すれば可能です。

$ curl -v ...

逆に必要にない場合は、-sオプションを指定します。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?