【发布时间】:2023-03-25 16:18:01
【问题描述】:
我正在使用 libcurl 与 Twitter 和 Identi.ca 进行通信。只要我的连接不忙,一切都会完美运行。但是如果我正在下载一个大文件,curl 请求会在 5 秒后超时。
我在 curl 手柄上设置了以下选项:
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 60);
curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 15);
它们没有区别,curl_easy_perform() 总是在 5 秒后返回。 CURLINFO_RESPONSE_CODE 和 CURLINFO_HTTP_CONNECTCODE 的值始终为零。
有什么想法吗?我是否需要设置其他超时时间,或者是否有任何原因导致上述不生效?
编辑:curl_easy_perform 的返回值为CURLE_OPERATION_TIMEDOUT
【问题讨论】:
-
curl_easy_perform()的返回值是多少? -
@Linus,我已经更新了主帖 :)
-
文档中也有提到
CURLOPT_NOSIGNAL,可能这个也需要设置吧? -
@Uwe,谢谢,但我尝试过启用和禁用 CURLOPT_NOSIGNAL,同样的问题 :(
标签: c++ c curl timeout libcurl