使用curl_setopt()我设置CURLOPT_CONNECTTIMEOUT_MS为1000(1秒)并设置另一个睡眠5秒的脚本,然后响应200 OK(使用sleep()),我打电话进行测试.我的脚本总是等待响应,即使它应该在cURL超时错误中产生.
如何使超时按预期工作并中断请求?
$ch = curl_init($url);
curl_setopt_array($ch, array(
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_NOBODY => TRUE,
CURLOPT_PROTOCOLS => CURLPROTO_HTTP | CURLPROTO_HTTPS,
CURLOPT_CONNECTTIMEOUT_MS => 1000,
CURLOPT_MAXREDIRS => 5,
CURLOPT_USERAGENT => 'Linkit/2.x Drupal/7.x',
));
$document = curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)
我也试过CURLOPT_TIMEOUT_MS了没有_MS后缀的变种.
我在OS X 10.6,XAMPP上使用PHP 5.3.4和cURL 7.19.7.
Fra*_*nes 11
的CURLOPT_CONNECTTIMEOUT或CURLOPT_CONNECTTIMEOUT_MS定义的时间卷曲可以连接到服务器,但在你的情况下,最大数量,连接成功,因此超时不再适用.
您需要使用CURLOPT_TIMEOUT或CURLOPT_TIMEOUT_MS定义cURL可以执行的最长时间.
有关PHP支持的选项的完整列表,请查看curl_setopt文档.