web-dev-qa-db-ja.com

POST基本認証を使用したJSON over CURL

コマンドラインからCurlを使用して、作業中の小さなWeb APIをデバッグしています。 Web APIは、入力として基本認証とJSONオブジェクトを必要とします(POST)。現在、この基本認証は正常に機能しています。

curl -i --user validuser:70e12a10-83c7-11e0-9d78-0800200c9a65 http://example.com/api.php

ただし、JSONオブジェクトをPOSTリクエストとして送信したい:

curl -i --user validuser:70e12a10-83c7-11e0-9d78-0800200c9a65 -X POST -d '{"person":{"name":"bob"}}' http://example.com/api.php

上記のコマンドで400 Bad Request応答を取得しています。このPOST request?

27
2bard

で試してください:

curl -i --user validuser:70e12a10-83c7-11e0-9d78-0800200c9a65 -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"person":{"name":"bob"}}' http://mysite.com/api.php

本文のjson=ビットを削除しました。

あるいは、この投稿が役立つかもしれません: JSONをPHP with curl)に投稿する方法

55
Jits
curl --request POST \
  --url http://Host/api/content/ \
  --header 'authorization: Basic Esdfkjhsdft4934hdfksjdf'
3
4F2E4A2E

使用しないでください

$person = file_get_contents("php://input");

代わりに使用する

$person = $_POST['person'];

そして、コマンドラインからcurlを使用している場合、これはPOST json data:

curl -d 'person={"name":"bob"}'
1
Luca Matteis