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;
}
转:https://www.cnblogs.com/zwios/p/4183698.html