0

我正在阅读一个集成 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 脚本?

任何帮助,将不胜感激。

4

5 回答 5

2

不,您不能$_POST直接使用。您将不得不手动提取响应正文json_decode并处理结果。但这很容易做到:

$data = json_decode(file_get_contents('php://input'));

echo $data->name;
于 2013-08-08T09:53:10.937 回答
0

不 - 你不能 - 但是你可以将 JSON 转换成$_POST这样:

<?php
    $_POST = array_merge($_POST, json_decode(file_get_contents("php://stdin"), true));
?>
于 2013-08-08T10:00:14.013 回答
0
$json = file_get_contents('php://stdin');
于 2013-08-08T09:53:55.780 回答
0

您必须为此使用 json_decode() 函数(http://php.net/manual/en/function.json-decode.php

于 2013-08-08T09:55:05.783 回答
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}";

或使用如下的 true 。. .

$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}";
于 2013-08-08T09:58:31.277 回答