使用CURL断点续传时遇到的数据类型问题

使用vc2008+CURL开发 HTTP 文件下载时,发现只要设置了断点续传,就无法执行下载,向CURL注册的下载回调函数根本就不会被调用。

代码如下:

curl_easy_setopt(curl, CURLOPT_URL, szRemoteUrl);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, DoDownloadFunc);

curl_easy_setopt(curl, CURLOPT_RESUME_FROM_LARGE, (nLocalFileLen>0)?nLocalFileLen:0);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);

 

折腾了好久,网络上都找不到类似的抱怨,一些网络上的示例代码写法和我一样。

因此,甚至怀疑是否自己编译的CURL库不正确,但是替换CURL库问题依旧。

最终发现其实错在CURLOPT_RESUME_FROM_LARGE的参数设置上。

CURLOPT_RESUME_FROM_LARGE支持的参数类型是 long long类型。所以,以上代码的续传设置修改如下,就OK了。

curl_easy_setopt(curl, CURLOPT_RESUME_FROM_LARGE, (LONGLONG)((nLocalFileLen>0)?nLocalFileLen:0));

 

大家如果遇到类似问题,也许可以确认下参数类型。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值