cURL 超时问题

cURL time out issues

本文关键字:问题 超时 cURL      更新时间:2023-10-16

我正在使用libcurl将一些文件从客户端下载到服务器。我在卷曲连接中设置了以下选项,

curl_easy_setopt(curlPtr, CURLOPT_LOW_SPEED_LIMIT, 1);
curl_easy_setopt(curlPtr, CURLOPT_LOW_SPEED_TIME, 360);
curl_easy_setopt(curlPtr, CURLOPT_IGNORE_CONTENT_LENGTH, 1);
curl_easy_setopt(curlPtr, CURLOPT_TCP_NODELAY, 1);

即使我已经设置为在 6 分钟(360 秒)内没有收到字节时超时,即使我收到响应,操作也会超时,

这是我从中收到的cURL调试响应,

  • 操作在 360000 毫秒后超时,收到 205512 字节
  • 关闭连接 #0
  • 已达到超时

我已将响应重定向到文件,我可以确认响应字节。但是,操作在达到正好 6 分钟后仍然超时。

任何人都可以帮助我,我在上面有什么错吗?

注意我正在使用 libcurl 7.19.3。我无法立即进行升级,但我们计划升级到最新的稳定版本。

谢谢普拉布

在您发布的仅有的 4 行中没有任何错误。

默认情况下,CURLOPT_TIMEOUT CURLOPT_TIMEOUT_MS值为 0。但是,如果使用特定的 curl 实现,请尝试在代码中将这些选项传递给 0。

如果它没有改变任何内容,那是因为它是 Web 服务器上的超时。因此,如果您无法控制此服务器,则无法执行任何操作。您必须创建一个带有循环的程序才能重新启动连接。