不确定是否有人可以帮我解决问题。
我必须为我工作的公司写一些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;
?>
答案 0 :(得分:3)
要从您将收到的POST获取原始数据,您将使用$postData = file_get_contents('php://input');
http://php.net/manual/en/reserved.variables.post.php
然后你将{POST}的内容json_decode()
重新转换为JSON。
答案 1 :(得分:0)
不太了解你的问题。您可能正在寻找阅读原始POST数据的方法吗?在这种情况下,打开并阅读php://stdin
流。
$stdin = fopen('php://stdin', 'r');
顺便读到这里(http://php.net/manual/en/function.curl-setopt.php)如何使用CURLOPT_POSTFIELDS
。此参数可以作为urlencoded字符串传递,例如&#39; para1 = val1&amp; para2 = val2&amp; ...&#39;或者作为一个数组,字段名称为键,字段数据为值。