断点续传 curl_easy_setopt CURLOPT_RANGE

示例:
stringstream ss;
string srange;
long long llCurrentSize;
long long llTotalSize;

ss << llCurrentSize;
ss << "-";
ss << llTotalSize;

srange >> srange;

curl_easy_setopt(m_hCurl,CURLOPT_RANGE,srange.c_str());

注:CURLOPT_RANGE : 传递一个你想指定的范围。它应该是”X-Y”格式,X或Y是被除外的。HTTP传送同样支持几个间隔,用逗句来分隔(X-Y,N-M)。

踩坑点:

        *文件写入方式为 追加 _wfopen_s(&m_pFile, strFilePath.c_str(), L"ab+");

        *假设本地缓存文件大小为 llCurrentSize = 100M,等于需要下载的文件的总大小(llTotalSize)。

        实际开发中遇到,当传入的llCurrentSize = llTotalSize时,导致该接口接着本地缓存文件又往文件末尾追加了100M的文件

        当传入的llCurrentSize < llTotalSize时,则不会出现此问题。

       *它应该是”X-Y”格式,X或Y是被除外的。(需要细品这句话)

        https://github.com/bagder/everything-curl/blob/master/libcurl-http/ranges.md#http-ranges

        

参考:https://www.cnblogs.com/chang290/archive/2012/08/12/2634858.html


版权声明:本文为qq_33591755原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。