使用命令行POST json:json输出错误

时间:2017-02-05 19:29:27

标签: php json curl

我使用以下语法将一些json数据发布到我的URL

curl -H 'Content-Type:application/json' -X POST -d '{"username":"davidwalsh","password":"something"}' http://myProjectURL

我想在我的php函数中将这个json字符串放在数组中

但目前我尝试打印像

这样的post变量
echo "<pre>";
print_r($post);
die();

it gives me output 
<pre>Array
(
    ['] => Array
        (
            [{username:davidwalsh,password:something}] =>
        )

)

预期输出

 Array(
        "username" => "davidwalsh",
        "password" => "something"
    )

我指的是this

虽然我的问题被标记为重复,但我想通知您,我无法获取通过json发送的每个参数。 我将所有array key values作为单个数组键获取,这绝对是错误的。

1 个答案:

答案 0 :(得分:0)

终于得到了答案:

curl -X POST -H 'Content-Type:application/json' -d "{\"username\":\"davidwalsh\",\"password\":\"something\"}" http://myProjectURL

我必须在每个参数和值周围加上双引号 (") 在php文件中进行了一些修改,如下所示。

<?php
echo "<pre>";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $data = json_decode(file_get_contents("php://input") , true);
    print_r($data);
}
?>

我收到的输出是:

<pre>Array
(
    [username] => davidwalsh
    [password] => something
)