PHP中的Api - 接受curl请求和进程

时间:2012-12-10 20:06:33

标签: php api curl

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

我必须为我工作的公司写一些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;
?>

2 个答案:

答案 0 :(得分:3)

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

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

然后你将{POST}的内容json_decode()重新转换为JSON。

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

答案 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;或者作为一个数组,字段名称为键,字段数据为值。