通过 CURL 发布 JSON 并进行基本身份验证

问题描述 投票:0回答:3

我正在从命令行使用 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 请求中捆绑 JSON 对象有什么想法吗?

json api http post curl
3个回答
59
投票

尝试一下:

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


6
投票
curl --request POST \
  --url http://host/api/content/ \
  --header 'authorization: Basic Esdfkjhsdft4934hdfksjdf'

1
投票

请勿使用

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

改为使用

$person = $_POST['person'];

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

curl -d 'person={"name":"bob"}'
© www.soinside.com 2019 - 2024. All rights reserved.