php - 在 PHP 中设置 Curl 的超时时间

标签 php http curl timeout

我正在通过 php 在 eXist 数据库上运行 curl 请求。数据集非常大,因此,数据库始终需要很长时间才能返回 XML 响应。为了解决这个问题,我们设置了一个 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);

但是,curl 请求始终在请求完成之前结束(通过浏览器请求时<1000)。有谁知道这是否是在 curl 中设置超时的正确方法?

最佳答案

参见文档:http://www.php.net/manual/en/function.curl-setopt.php

CURLOPT_CONNECTTIMEOUT - 尝试连接时等待的秒数。使用 0 无限期等待。
CURLOPT_TIMEOUT - 允许 cURL 函数执行的最大秒数。

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0); 
curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds

也别忘了放大php脚本自身的执行时间:

set_time_limit(0);// to infinity for example

关于php - 在 PHP 中设置 Curl 的超时时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2582057/

相关文章:

php - Paypal IPN - 关于存储变量

php - laravel中如何根据表列值重定向不同的编辑页面?

php - 此查询的更简单方法 : If {current date} is a {weekly/fortnightly/monthly} repeat/multiple of {start_date}

php - 带有语言环境的 Symfony2 错误页面

html - http header 和 html meta 中的字符集有什么区别?

c - 如何在 POST 请求发送图像文件后将其保存在 C Web 服务器中

HTTP 和 HTTPS iframe

php - 打开 : Failed to enable crypto

php - 使用 PHP 创建文件以供下载而不保存在服务器上

php - PHP 中的 Facebook Graph API 出现不一致错误 - 无法连接到 graph.facebook.com 端口 443 : Connection timed out