这是我第一次开发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数据的最佳方法是什么?
答案 0 :(得分:0)
这只是猜测,所以请不要打扰我。但也许它等待卷曲完成,即超时,因为你在返回之前没有关闭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;
}