使用基本身份验证在CURL上POST JSON

我从命令行使用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错误的请求响应与上述命令,关于如何捆绑JSON对象在这个POST请求的任何想法?


尝试一下:

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=位。

或者,这篇文章可能会有所帮助:如何使用curl将JSON发布到PHP


不要使用

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

改为使用

$person = $_POST['person'];

如果你从命令行使用curl,这是想要POST JSON数据的语法:

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

curl --request POST 
  --url http://host/api/content/ 
  --header 'authorization: Basic Esdfkjhsdft4934hdfksjdf'
链接地址: http://www.djcxy.com/p/8583.html

上一篇: POST JSON over CURL with basic authentication

下一篇: why use PUT DELETE POST GET?