我使用curl像这样对API进行调用:
$curl = curl_init();
if (isset($_COOKIE['session'])) {
curl_setopt($curl, CURLOPT_COOKIE, 'session=' . $_COOKIE['session']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_URL, $query_url);
$result = curl_exec($curl);
}
else {
$result = 'Cookie is expired';
}
curl_close($curl);
print $result;
然后我运行此PHP文件进行测试,并且在测试过程中加载该文件时,我什么也没有收到,当我重新启动页面时,我得到了所需的数据。当我将其与javascript一起使用时,行为类似。
当我用Postman测试它时,效果很好。
为什么它不等待响应然后将其返回给我,而是第一次向我发送空页面,并且仅在页面重新加载后才返回正确的响应?
编辑:JSON返回非常大,因此通常需要一台服务器大约1.5-2秒才能返回
答案 0 :(得分:0)
似乎这是我尝试连接的服务器的问题,除此解决方法外,我无能为力:
if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == 0) {
$result = curl_exec($curl);
}
这是最后的摘录:
$curl = curl_init();
if (isset($_COOKIE['session'])) {
curl_setopt($curl, CURLOPT_COOKIE, 'session=' . $_COOKIE['session']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_URL, $query_url);
$result = curl_exec($curl);
if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == 0) {
$result = curl_exec($curl);
}
}
else {
$result = 'Cookie is expired';
}
curl_close($curl);
print $result;