2

不确定是否有人可以帮助我解决问题。

我必须为我工作的公司编写一些 php,以便我们与接受 JSON 主体的 API 集成。我使用了 cUrl 方法,脚本运行良好。

如果我想构建另一个可以接受我发送的请求的 php 页面,我该怎么做?

假设我想让某人向我发送相同的请求,然后希望他们发送的信息进入我的数据库,如何将他们的请求转换为 php 字符串?

这是我发送的代码。

<?
$json_string = json_encode(array("FirstName" => $name, "MiddleName" => " ", "LastName" => $last));;
// echo $json_string;
// jSON URL which should be requested
$json_url = 'http://www.exampleurl.com';
// jSON String for request
// Initializing curl
$ch = curl_init( $json_url );
// Configuring curl options
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
    'Accept: application/json;charset=utf-8',
    'Content-Type: application/json;charset=utf-8',
    'Expect: 100-continue',
    'Connection: Keep-Alive') ,
CURLOPT_POSTFIELDS => $json_string
);
// Setting curl options
curl_setopt_array( $ch, $options );
// Getting results
$result =  curl_exec($ch); // Getting jSON result string
echo $result;
$myArray = json_decode($result);
$action = $myArray->Action;
?>
4

2 回答 2

3

要从您将收到的 POST 中获取原始数据,您将使用$postData = file_get_contents('php://input');

http://php.net/manual/en/reserved.variables.post.php

然后您json_decode()将该 POST 的内容返回到 JSON。

http://php.net/manual/en/function.json-decode.php

于 2012-12-10T20:14:46.053 回答
0

不太好理解你的问题。可能您正在寻找读取原始 POST 数据的方法?在这种情况下打开并从php://stdin流中读取。

$stdin = fopen('php://stdin', 'r');

顺便阅读这里(http://php.net/manual/en/function.curl-setopt.php)如何使用CURLOPT_POSTFIELDS。此参数可以作为 urlencoded 字符串(如 'para1=val1¶2=val2&...')或作为字段名称作为键和字段数据作为值的数组传递。

于 2012-12-10T20:14:30.960 回答