iOS 中的断点续传
by
关键点
实现断点续传的关键是自定义http request的头部的range域属性
Range头域可以请求实体的一个或者多个子范围。例如,
表示头500个字节:bytes=0-499
表示第二个500字节:bytes=500-999
表示最后500个字节:bytes=-500
表示500字节以后的范围:bytes=500-
第一个和最后一个字节:bytes=0-0,-1
同时指定几个范围:bytes=500-600,601-999
基本思想
1、获取已下载文件的大小,用来确定下载的文件从什么地方开始续传(即获取range属性的范围);
2、设置http request请求头文件,要包含range属性;
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:5.0f];
// 设置请求头文件
NSString *rangeValue = [NSString stringWithFormat:@"bytes=%llu-", from];
[request addValue:rangeValue forHTTPHeaderField:@"Range"];
3、 发起http下载请求;
具体实现
可以用iOS自带的NSURLConnection,也可以使用第三方如AFNetWorking实现。
参考资料
1.ios 实现断点续传 一 nsurlconnection;
Subscribe via RSS