我正在阅读集成API,它说它将以这种格式发送请求:
content-type: application/json
accept: application/json
x-gsc-api-key: lRDs8NfsVTmHD8SC1234
{
"name" : "testuser",
"password" : "098f6bcd4621d373cade4e832627b4f6",
"reference" : "b86de61-af20-4c47-af9a-6f2edeebc4fe"
}
我想用PHP服务请求。我知道其他一些帖子也会问同样的问题,但他们是通过AJAX方法发送请求的。我不知道请求将以哪种方式发送。
我可以引用变量$ _POST ['name']和$ _POST ['password']来获取值吗?或者我需要调用json_decode($ _ POST)?
这个信息是否足以编写一个服务请求的PHP脚本?
任何帮助都将不胜感激。
答案 0 :(得分:2)
不,您不能直接使用$_POST
。您必须手动提取响应正文json_decode
并处理结果。但这很容易做到:
$data = json_decode(file_get_contents('php://input'));
echo $data->name;
答案 1 :(得分:0)
$json = file_get_contents('php://stdin');
答案 2 :(得分:0)
您必须为此使用json_decode()函数(http://php.net/manual/en/function.json-decode.php)
答案 3 :(得分:0)
不确定我是否正确阅读了问题但是>。>
$json = '{"name":"testuser","password":"098f6bcd4621d373cade4e832627b4f6","reference":"b86de61-af20-4c47-af9a-6f2edeebc4fe"}';
$data = @json_decode($json);
$name = $data->name;
$password = $data->password;
$ref = $data->reference;
echo "${name} ${password} ${ref}";
或使用如下的真实。 。
$json = '{"name":"testuser","password":"098f6bcd4621d373cade4e832627b4f6","reference":"b86de61-af20-4c47-af9a-6f2edeebc4fe"}';
$data = @json_decode($json, true);
$name = $data['name'];
$password = $data['password'];
$ref = $data['reference'];
echo "${name} ${password} ${ref}";
答案 4 :(得分:0)
不 - 你不能 - 但你可以像这样将JSON转换为$_POST
:
<?php
$_POST = array_merge($_POST, json_decode(file_get_contents("php://stdin"), true));
?>