我正在通过PHP在eXist数据库上运行curl请求。该数据集非常大,因此数据库一直需要很长时间才能返回XML响应。为了解决这个问题,我们设置了一个curl请求,这个请求应该是一个很长的超时。在PHP中设置Curl的超时值
$ch = curl_init();
$headers["Content-Length"] = strlen($postString);
$headers["User-Agent"] = "Curl/1.0";
curl_setopt($ch, CURLOPT_URL, $requestUrl);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, 'admin:');
curl_setopt($ch,CURLOPT_TIMEOUT,1000);
$response = curl_exec($ch);
curl_close($ch);
然而,请求完成(< 1000当通过浏览器请求)之前卷曲请求一致结束。有谁知道这是否是在curl中设置超时的正确方法?
虽然[PHP中的文档](http://php.net/manual/en/function.curl-setopt.php)说'CURLOPT_TIMEOUT'是关于函数需要多长时间,[底层卷曲库文档] (http://curl.haxx.se/libcurl/c/CURLOPT_TIMEOUT.html)似乎说这是关于请求需要多长时间,这是一个有趣的区别 - 不知道该怎么读取! – fideloper 2015-12-21 19:16:10
我想这里是最好的解释:http://stackoverflow.com/questions/27776129/php-curl-curlopt-connecttimeout-vs-curlopt-timeout – fideloper 2015-12-21 19:17:07