【问题标题】:cmd curl json to php scriptcmd curl json到php脚本
【发布时间】: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


    【解决方案1】:

    似乎没问题,但是在测试了您的示例之后,它似乎只有在我在帖子数据周围加上双引号时才有效。试试看。

    【讨论】:

    • 完美谢谢!周围有双引号并在工作之间转义引号:-) 尝试了几个小时让它运行......
    猜你喜欢
    • 2021-03-18
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 2012-08-28
    • 2014-03-27
    • 2011-04-05
    • 1970-01-01
    相关资源
    最近更新 更多