HTTP Range的示例
通过设置Range可以指定每次从网路下载数据包的大小
Range示例
bytes=0-499 从0到499的头500个字节
bytes=500-999 从500到999的第二个500字节
bytes=500- 从500字节以后的所有字节
bytes=-500 最后500个字节
bytes=500-599,800-899 同时指定几个范围
Range小结
- 用于分隔前面的数字表示起始字节数,后面的数组表示截止字节数,没有表示到末尾, 用于分组,可以一次指定多个Range,不过很少用
//分段下载文件
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:kTimeout];
NSString *range = [NSString stringWithFormat:@"bytes=%lld-%lld", from, end];
[request setValue:range forHTTPHeaderField:@"Range"];
NSURLResponse *response = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:NULL];
#pragma mark - 获取网络文件大小
- (long long)fileSizeWithURL:(NSURL *)url
{
// 默认是GET
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:kTimeOut];
// HEAD 头,只是返回文件资源的信息,不返回具体是数据
// 如果要获取资源的MIMEType,也必须用HEAD,否则,数据会被重复下载两次
request.HTTPMethod = @"HEAD";
// 使用同步方法获取文件大小
NSURLResponse *response = nil;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:NULL];
// expectedContentLength文件在网络上的大小
NSLog(@"%lld", response.expectedContentLength);
return response.expectedContentLength;
}
多线程下载同一个文件(断点下载)
HTTPRange分段下载详解
最新推荐文章于 2022-11-03 11:21:18 发布
本文详细解析了HTTPRange头的使用方法,包括如何通过设置Range来指定下载数据的字节范围,例如从文件的特定位置开始下载或者下载文件的最后部分。文章还提供了分段下载文件的Objective-C代码示例,并介绍了如何使用HEAD方法获取网络文件的大小。
936

被折叠的 条评论
为什么被折叠?



