操作libcurl停止文件下载类名目开发(一) libcurl简略操作引见

各位亲 有时间可以去看看我的  “金骏家居淘宝店” http://jinjun1688.taobao.com/shop/view_shop.htm?tracelog=twddp 买时说明在我的博客看到有优惠哦 还有意外礼品赠送  真正的程序员淘宝店

引言:

    因为要在android手机测停止DM开发, 其中最重要的就是FUMO和SCOMO下载, 下载操作的是linux开源库libcurl. 于是就把libcurl的操作钻研了一遍, 有些心得, 并处置了一些网友的阻塞卡死效果, 于是jwisp将阅历和打算分享给大家.

 

一共四篇:

操作libcurl停止文件下载类名目开发(一) libcurl简略操作引见

(二)操作libcurl实现获取目的文件大小, 下载进度显示, 断点续传等性能

(三)Libcurl中操作curl_easy_perform阻塞, 遇到无信号卡死的完满处置打算

(四)操作Libcurl下载文件,处置无信号中缀,下载中掉电复原后断点续传效果的源代码

 

Libcurl操作引见:

       四个要害函数:

1.      curl_easy_init() 初始化curl环境,新建curl对象,前往对象句柄,操作举例:    CURL *handler = curl_easy_init();

2.      curl_easy_setopt() 各种设置, 包括URL设置等,操作举例:

  curl_easy_setopt(handler, CURLOPT_URL, “”),其中中间的参数是设置的类别,比力重要,后面会罗列分析.

3.      curl_easy_perform() 末尾执行下载操纵, 若下载失败会前往舛误码.例如: CURLcode code = curl_easy_perform(handler)

4.      curl_easy_getinfo() 失去各种下载信息, 包括下载文件名,文件大小等,此操纵必须放在curl_easy_perform()之后执行能力失去正确的值.操作举例: long resultCode;

   curl_easy_getinfo(handler, CURLINFO_RESPONSE_CODE, &resultCode);

中间的参数也在后面罗列

须要的参数分析

   curl_easy_setopt()参数:

     CURLOPT_URL  设置目的URL地址

     CURLOPT_HEADER 能否蕴含http头,蕴含则设置为一个非0值

     CURLOPT_NOBODY 假设你不需求http的body部门(除header头以外其余部门),设置此项为一个非0值

     CURLOPT_TIMETOU 设置一个超时工夫,若逾越此工夫perform会立即前往,前往码为下载失败对应舛误码,单位秒.留意此工夫为从调用perform末尾后的总的下载工夫,举例curl_easy_setopt(handler, CURLOPT_TIMEOUT, 30)

设置超时工夫为30秒,即下载必须在30秒内完成,不然前往下载失败

     CURLOPT_CONNECTIONTIMEOUT 衔接超时工夫,单位秒.这个参数在easy curl下载中基本没什么实用价值.

     CURLOPT_RESUME_FROM_LARGE 从什么位置末尾下载,断点续传主要操作此参数停止配置,操作十分简略,只要求传递一个字节偏移量即可,例如

 curl_easy_setopt(handler, CURLOPT_ RESUME_FROM, 0),暗示从第0个字节末尾下载, curl_easy_setopt(handler, CURLOPT_ RESUME_FROM, 500),从第500个字节末尾下载

     CURLOPT_RANGE 下载指定字节的文件块,参数对应的值格式为X-Y,例如curl_easy_setopt(handler, CURLOPT_ RESUME_FROM, “500-999”),下载从500个字节末尾到999字节完毕的文件块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值