使用CURL断点续传时遇到的数据类型问题
2015-02-08 14:35
411 查看
使用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));
大家如果遇到类似问题,也许可以确认下参数类型。
代码如下:
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));
大家如果遇到类似问题,也许可以确认下参数类型。
相关文章推荐
- 使用反射为泛型集合添加其他类型的数据时遇到的问题
- 命令行下使用curl,采集数据遇到的问题。
- 使用Navicat Premium将Oracle数据库中的表和数据迁移到MySQL数据库中,遇到的Date类型出现精度问题及解决方法
- 使用Mysql遇到的几个数据类型/格式的问题
- 关于在用curl函数post网页数据时,遇上表单提交 type为submit 类型而且没有name和id时可能遇到的问题及其解决方法
- C++类中包含string类型数据使用read和write实现文件读取和输出时遇到的问题
- sql server 数据类型以及SqlParameter赋值时遇到的问题
- Access下“是/否”数据类型在使用NHibernate中的一个问题
- 开发时遇到使用LINQ无法进行数据插入时的问题
- VS2005+ACCESS2003开发中遇到的“标准表达式中数据类型不匹配”问题解决方法
- 使用GetDIBits获取图片数据时遇到的问题
- Intent传值问题(非Integer and String 数据类型)以及 intent使用方法
- dsp调试中数据类型自动转换遇到的问题
- 10月14日遇到的问题 在将 nvarchar 值 转换成数据类型 int 时失败。
- 使用VS.NET中遇到的问题:分析器错误信息: 未能加载类型
- 使用curl抓取网页遇到HTTP跳转时得到多个HTTP头部的问题
- VS2008下使用Linq To Entity的Skip().Take()分页查询时遇到数据结果不对的问题
- 解决 JScript 中使用日期类型数据时出现类型错误的问题
- 解决 JScript 中使用日期类型数据时出现类型错误的问题
- 使用PB9.0数据窗口遇到的问题