curlってlinuxとWindowsのものがあるけど使い方の違いがわからない
そんな悩みに答えます。
この記事では、Windows版のcurlのPOSTリクエストの送り方、curlのlinux版とWindows版の違いを紹介します。
この記事を読むことで、linux版とWindows版の使い方の違いがわかるようになります。
本記事の狙い
- Windows版curlでPOSTリクエストを送ることができる
- curlのlinux版とWindows版の使い方の違いを理解して使用することができる
GET リクエスト
GETリクエストを送りたい場合は、linux版もWindows版も同じコマンドです。
コマンド使用法
curl <URL>
<URL>はサイトのURLを記述します。
実行例
curl http://localhost:3000
POSTリクエスト(application/x-www-form-urlencoded)
Bodyのフォーマットが「application/x-www-form-urlencoded」となるPOSTリクエストを送りたい場合は、linux版もWindows版も同じコマンドです。
コマンド使用法
curl -d "<KEY1>=<VALUE1>&<KEY2>=<VALUE2>" <URL>
dオプションを使用して、送るデータ内容全体を「"」(ダブルクォーテーション)で囲みます。
<KEY1>に1つ目のデータのキー名を記述します。
<VALUE1>に1つ目のデータのキー名に対する値を記述します。
データが複数存在する場合は、&を間に挟み、<KEY2>、<VALUE2>を1つ目と同じように記述します。
<URL>はサイトのURLを記述します。
実行例
curl -d "id=1234&name=taro" http://localhost:3000
POSTリクエスト(application/json)
Bodyのフォーマットが「application/json」となるPOSTリクエストを送りたい場合は、linux版とWindows版で少し異なるので注意しなければいけません。
コマンド使用法
curl -X POST -H "Content-Type: application/json" -d <データ> <URL>
Xオプションを使用して、メソッドを指定します。(POSTを指定)
Hオプションを使用して、ヘッダを指定します。(「Content-Type: application/json」を指定)
<データ>を指定しますが、ここが注意ポイントです。
linux版とWindows版で異なります。
<URL>はサイトのURLを記述します。
linux版 実行例
curl -X POST -H "Content-Type: application/json" -d '{"id":"1234", "name":"taro"}' http://localhost:3000
linux版の場合は送るデータ内容全体を「'」(シングルクォーテーション)で囲み、JSON内のキー名と値を「"」(ダブルクォーテーション)で囲めばOKです。
Windows版 実行例
curl -X POST -H "Content-Type: application/json" -d "{\"id\":\"12345\", \"name\":\"taro\"}" http://localhost:3000
Windows版の場合は送るデータ内容全体を「"」(ダブルクォーテーション)で囲み、JSON内のキー名と値を「\"」(バックスラッシュ+ダブルクォーテーション)で囲めばOKです。
Windows版の場合は、データ内容全体を'(シングルクォーテーション)で囲むことができませんので注意してください。
Basic認証
Basic認証のページにリクエストを送る場合は、linux版もWindows版も同じコマンドです。
コマンド使用法
curl -u <ID>:<PASSWORD> <URL>
uオプションを使用します。
<ID>にBasic認証のユーザIDを記述します。
<PASSWORD>にBasic認証のユーザIDに対応するパスワードを記述します
<URL>はサイトのURLを記述します。
実行例
curl -u taro1234:password http://localhost:3000
まとめ
- POSTリクエスト(application/json)は、データの記述方法が異なるので注意!
他にlinux版とWindows版で違う部分を見つけたら更新します。
以上です。
読んでくださった方ありがとうございました。