我正在尝试检测cURL请求超时的情况。如果使用curl_multi_exec,则可能会有所不同?
curl_errno()的输出为0,这表明它是成功的。但是,curl_error()的输出是:
操作超时,经过1435毫秒,收到-1字节中的0个
你有什么想法,为什么错误代码是好的,但错误消息存在?我期望超时的错误代码为28。
另外,在curl_getinfo()中是否有任何可以检查超时的内容?
我使用的是PHP 5.4.4 / cURL 7.24.0。
编辑1-示例代码:
curl_errno()的输出为0,这表明它是成功的。但是,curl_error()的输出是:
操作超时,经过1435毫秒,收到-1字节中的0个
你有什么想法,为什么错误代码是好的,但错误消息存在?我期望超时的错误代码为28。
另外,在curl_getinfo()中是否有任何可以检查超时的内容?
我使用的是PHP 5.4.4 / cURL 7.24.0。
编辑1-示例代码:
$mh = curl_multi_init();
curl_multi_add_handle($mh,$a);
curl_multi_add_handle($mh,$b);
curl_multi_add_handle($mh,...);
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) == -1) usleep(100);
do { $mrc = curl_multi_exec($mh, $active); }
while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
CURLOPT_CONNECTTIMEOUT
或CURLOPT_CONNECTTIMEOUT_MS
来指定超时时间以尝试强制产生错误。 - ThomasEllis