这是我第一次开发API,这就是为什么我不惊讶它运行得有点慢,需要2-4秒才能加载(我在我的网页上使用了一个微时间计时器)。但是后来我发现执行API命令需要多长时间,大约是0.002秒。那么,为什么当我在PHP中使用CURL时,还要花2秒才能加载呢?
我的API连接代码:
function APIPost($DataToSend){
$APILink = curl_init();
curl_setopt($APILink,CURLOPT_URL, "http://api.subjectplanner.co.uk");
curl_setopt($APILink,CURLOPT_POST, 4);
curl_setopt($APILink,CURLOPT_POSTFIELDS, $DataToSend);
curl_setopt($APILink, CURLOPT_HEADER, 0);
curl_setopt($APILink, CURLOPT_RETURNTRANSFER, 1);
return curl_exec($APILink);
curl_close($APILink);
}如何在网页中检索数据:
$APIData=array(
'com'=>'todayslessons',
'json'=>'true',
'sid'=>$_COOKIE['SID']
);
$APIResult = json_decode(APIPost($APIData), true);
if($APIResult['functionerror']==0){
$Lessons['Error']=false;
$Lessons['Data']=json_decode($APIResult['data'], true);
}else{
$Lessons['Error']=true;
$Lessons['ErrorDetails']="An error has occured.";
}APIPost函数在一个functions.php文件中,该文件包含在我的页面请求时。从请求第二段代码到结束所用的时间大约是2.0126秒。获取API数据的最佳方式是什么?
发布于 2014-03-19 19:07:52
这只是一个猜测,所以请不要责备我。但可能是等待curl完成,也就是超时,因为你在返回之前没有关闭curl。
尝试这个小小的修改,看看它是否有帮助:
function APIPost($DataToSend){
$APILink = curl_init();
curl_setopt($APILink,CURLOPT_URL, "http://api.subjectplanner.co.uk");
curl_setopt($APILink,CURLOPT_POST, 4);
curl_setopt($APILink,CURLOPT_POSTFIELDS, $DataToSend);
curl_setopt($APILink, CURLOPT_HEADER, 0);
curl_setopt($APILink, CURLOPT_RETURNTRANSFER, 1);
$ret curl_exec($APILink);
curl_close($APILink);
return $ret;
}https://stackoverflow.com/questions/22503339
复制相似问题