问题 cURL检查超时


我知道如何在cURL中设置超时但我想提醒用户请求超时。

我创建了一个ajax脚本,允许用户从各个保险站点请求数据并聚合到列表中。如果任何保险站点在一定时间内未能响应,我想提醒用户此时该公司的当前报价不可用。

cURL会返回任何信号表示超时吗?


8716
2018-02-15 12:42


起源

我不知道,但你检查了什么 curl_error() 那种情况下的输出? - Pekka 웃
要么 print_r(curl_getinfo($ch)) - NG.


答案:


curl_errno() 如果操作超时,则返回28。看到 http://curl.haxx.se/libcurl/c/libcurl-errors.html 其他错误代码。


14
2018-02-15 15:26





或者可以覆盖更多情况的另一个解决方案(服务器超时,服务器错误地显示空白页面)是检查get_url函数结果是否与“”或“FALSE”不同。

get_url函数示例:

function get_url($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    $tmp = curl_exec($ch);
    curl_close($ch);
    return $tmp;
}

2
2018-02-15 20:13