IOS网络篇17之分段下载、断点续传解析
来源:互联网 发布:初中网络课程 编辑:程序博客网 时间:2024/06/06 16:34
分段下载:
下面跟随分段下载的实现步骤来了解一下分段下载的原理:
(1)下载功能一般都是在子线程中实现的,因此首先我们要先创建一个子线程。
比如我们可以使用GCD中的串行异步:
dispatch_queue_t q =dispatch_queue_create("com.zhengwei.download",DISPATCH_QUEUE_SERIAL);
dispatch_async(q, ^{
});
(2)获取所要下载的文件大小NSURLConnection + NSMutableURLRequest 可以让我们只获取http的头信息。头信息中一般包含数据的一些基本信息。
通过
request.HTTPMethod =@"HEAD";
[NSURLConnectionsendSynchronousRequest:requestreturningResponse:&responseerror:NULL];
我们只对网络数据的head进行请求,请求的返回内容都放在response中,下面是NSURLResponse的各种属性:可以吧文件保存成各种类型的,当然如果不指定后缀名,就保存成了一个没有后缀名的文件。
(3)查看文件是否存在,并获取存在文件的大小
NSFileManager 可以对文件判断是否存在
(4)如果文件大小和下载的相同,那么利用缓存,不下载新的图片。利用图片的路径初始化图片如果不想等,那么开始图片下载。
(5)调用循环开始不断的下载文件。
这里文件下载可以使用
[request setValue:rangeforHTTPHeaderField:@"Range"];
设置下载请求的Range范围,指定下载某一部分图片。(6)对文件分段写入
NSFileHandle
这个对象有几个方法:- (void)writeData:(NSData *)data;
- (unsignedlonglong)seekToEndOfFile;
- (void)seekToFileOffset:(unsignedlonglong)offset;
可以指定从文件的哪一部分开始写入。
(7)断点续传
对每一个数据块设置一个标示符号。如果这段的数据的标示符号表明这个数据块已经被写完,那么就不用对这个数据快请求。否则遍历文件中的所有数据块,知道所有的数据块的表示符号都下完数据为止。
- IOS网络篇17之分段下载、断点续传解析
- java源代码详细注释 网络文件下载之分段下载(可扩展 断点续传)
- IOS网络通信之ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- 【转】IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- (十)(2) Z-Stack中OSAL定时器事件触发流程分析
- 不带头节点的链表尾插法C++实现
- JavaSwing布局FlowLayout的用法
- 工作感悟
- IOS网络篇17之分段下载、断点续传解析
- CornerStone配置SVN
- curl 命令
- android-xBuild apk差分与合成,zip差分与合成,lua打包,apk打包,png/jpg图片压缩
- android打开各种文件(setDataAndType)
- 1继承
- 对HTML5至关重要的10个Javascript资源
- java日常错误总结
- BZOJ 3175 Tjoi2013 攻击装置 二分图最大匹配