【发布时间】:2014-05-12 15:19:44
【问题描述】:
我正在尝试检测 cURL 请求何时超时。如果这有什么不同,我正在使用 curl_multi_exec?
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);
}
【问题讨论】:
-
你能贴出你的cURL代码吗
-
当然 - 在上面添加。塔!
-
不知道为什么会这样。您可以指定超时以尝试使用
CURLOPT_CONNECTTIMEOUT或CURLOPT_CONNECTTIMEOUT_MS强制出错。 -
我在 1 秒内强制执行它。似乎足以收到错误消息。 CURLOPT_CONNECTTIMEOUT_MS 导致相同的行为。