Curl接続でjsonパラメータをPOSTリクエストする書式

Windows8のコマンドプロンプトにおけるcurl接続の書き方

POSTメソッドで同時に指定するjson引数の渡し方でうまくいった例

PHPのフレームワークPhalconでRest APIを作成中にPOSTリクエストを行う必要があったので、

以前ダウンロードしてセットアップしてあったCurlでPOSTをリクエストを送信する。

curl -i -X POST -d "{\"name\":\"test name\",\"type\":\"2\",\"year\":1977}" http://phalcon-restapi.local/api
/robots

ダブルクォーテーションのエスケープが必要な点とパラメータ全体をシングルクォーテーションではなく、ダブルクォーテーションで括らないとうまくいかなかった。この点が同じなら下の方法でもエラーになることはない。

curl -i -X POST -d "{\"name\":\"test name2\",\"type\":\"1\",\"year\":1977}" -H "Content-Type: application/js
on" http://phalcon-restapi.local/api/robots

うまくいかなかった例

下の例のようなやり方ではPOSTリクエストを送信してもパラメータをサーバ側で受ける処理がうまくいかなかった。

curl -i -X POST -d "{"name":"test name","type":"1","year":1999}" http://phalcon-restapi.local/api/robots
curl -i -X POST -d '{"name":"test name","type":"2","year":1995}' http://phalcon-restapi.local/api/robots
  • ダブルクォーテーションのエスケープ処理
  • 全体をダブルクォーテーションで括る

この2点はWindows環境のコマンドプロンプトからCurl接続する場合は注意しておきたい点

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Curl接続でjsonパラメータをPOSTリクエストする書式の記事にコメントを投稿