当我输入以下命令时,我在CLI中从POST获得结果,但是当我打开http://172.16.16.126:8089/Test.php时,我没有看到任何这些POST数据只是其他数据。
我知道我错过了什么吗?有人可以告诉我我做错了吗?
pi@raspberrypi:~ $ curl -X POST -H 'Content-Type: application/json' -d '{"username":"saad","password":"something","Hello":"Hey"}' http://172.16.16.126:8089/Test.php
stdClass Object
(
[username] => saad
[password] => something
[Hello] => Hey
)
<pre>
stdClass Object
(
[name] => John
[age] => 42
)
Name: John Age: 42
JSON data: {"name":"John","age":42}
stdClass Object
(
[name] => John
[age] => 42
)
Array
(
[name] => John
[age] => 42
)
Name: John Age: 42
Test.php
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$data = json_decode(file_get_contents("php://input"));
print_r($data);
}
echo "<pre>\n";
$data = (object) array(
'name' => 'John',
'age' => 42
);
print_r($data);
printf("Name: %s Age: %s\n\n", $data->name, $data->age);
$data = json_encode($data);
echo "JSON data: $data\n\n";
$data = json_decode($data);
print_r($data);
$data = (array) $data; // cast (convert) the object to an array
print_r($data);
printf("Name: %s Age: %s\n\n", $data['name'], $data['age']);
?>
答案 0 :(得分:0)
每次请求PHP程序处理的URL时,都会运行PHP程序。
该程序查看请求的输入,然后根据它生成响应。
如果您使用包含JSON正文的cURL发出一个请求,然后从浏览器发出另一个请求但没有,那么您将为每个请求获得不同的响应。
你可以编写你的PHP程序,这样当它获得一个带有JSON主体的POST请求时,它会将数据保存在某个地方(例如在数据库中),然后在它获得GET请求时(这可能是某人在浏览器的地址栏中键入URL以获取该数据而不是读取POST主体的结果。
这会给你看起来期待的结果。