C++ libcurl-5秒后奇怪超时
我正在使用libcurl与Twitter和Identi.ca进行通信。只要我的连接不忙,一切都能正常工作。但是如果我下载一个大文件,curl请求在5秒后超时 我在卷曲控制柄上设置了以下选项:C++ libcurl-5秒后奇怪超时,c++,c,curl,timeout,libcurl,C++,C,Curl,Timeout,Libcurl,我正在使用libcurl与Twitter和Identi.ca进行通信。只要我的连接不忙,一切都能正常工作。但是如果我下载一个大文件,curl请求在5秒后超时 我在卷曲控制柄上设置了以下选项: 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_setopt(curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 60);
curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 15);
它们没有区别,curl\u easy\u perform()
总是在5秒后返回。curlinfou-RESPONSE\u-code
和CURLINFO\u-HTTP\u-CONNECTCODE
值始终为零
有什么想法吗?是否有其他需要设置的超时,或者是否有任何原因导致上述设置不生效
编辑:curl\u easy\u perform的返回值是
CURLE\u OPERATION\u TIMEDOUT
我认为这是因为以下两个原因之一:
要获得真正好的帮助,请提供完整的源代码,针对公共URL重复该问题。独立的curl程序是否成功下载了该文件?如果没有,服务器端可能存在5秒请求超时限制 您仍然可以分块下载文件。首先抓取头部并拉取文件的大小,然后使用以下选项拉取文件的每个块:
curl_easy_setopt(curl, CURLOPT_BINARYTRANSFER, 1);
curl_easy_setopt(curl, CURLOPT_RANGE, start_range + "-" + (start_range + chunk_size));
一旦你拥有了所有的片段,将它们连接在一起,你就应该拥有完整的文件。curl\u easy\u perform()的返回值是多少?@Linus,我已经更新了主要帖子:)文档也提到了,也许这也需要设置?@Uwe,谢谢,但我尝试了启用和禁用CURLOPT\u NOSIGNAL,同一问题:(