【发布时间】:2018-03-10 05:19:19
【问题描述】:
我正在尝试使用 curl 从命令行将 json 数据发布到 php 脚本。 但我不知道如何在服务器站点(php)上接收发布的 json
这是我迄今为止尝试过的:
命令行:
curl -H "Content-Type: application/json" -X POST -i -d '{"token":"xyz"}' http://localhost/api/users.php
users.php
//Receive the RAW post data.
$content = file_get_contents("php://input");
echo $content;
// try to decode json
$decoded = json_decode($content);
if($decoded){
echo "success";
echo $decoded['token'];
}
else{
echo "failed";
}
我得到的结果是:
'{token:xyz}'
failed
我还尝试在 curl 调用中转义 ",例如:
curl -H "Content-Type: application/json" -X POST -i -d '{\"token\":\"xyz\"}' http://localhost/api/users.php
但是我得到了几乎相同的结果:
'{"token":"xyz"}'
failed
所以我的问题是php脚本无法转换接收到的json数据。
我做错了什么?
编辑(已解决):
使用双引号调用 cmd curl 命令并在其间使用转义引号:
curl -H "Content-Type: application/json" -X POST -i -d "{\"token\":\"xyz\"}" http://localhost/api/users.php
【问题讨论】:
标签: php json curl command-line