开篇语:
上一篇中我们自己封装了HXPostRequest类,并实现了文件上传功能。既然有了上传,那怎么能少了下载功能呢,让我们一起来看看使用方法吧!
实现:
当然,下载功能需要使用我们先前写好的HXGetRequest类。你需要给resumableDownloadPath属性赋值,很显然它是支持断点续传的哦!关于断点续传的原理这里就不多介绍了,网上搜一下很多的。这里遇到的坑主要还是服务器端不支持“Range”、“Last-Modified”、“Etag”等,总之,要想很好的兼容iOS端的断点续传,服务器一定要支持标准协议哦。这里可以参考先前的文章:iOS--断点续传之java服务器
简单例子:
NSString *url = @"";
HXGetRequest * downloadRequest = [[HXGetRequest alloc] initWithRequestUrl:url argument:nil];
//缓存路径和下载进度
downloadRequest.resumableDownloadPath = @""; //设置缓存路径
downloadRequest.resumableDownloadProgressBlock = ^(NSProgress * _Nonnull progress) {
dispatch_async(dispatch_get_main_queue(), ^{
//progress.localizedDescription //需要在主线程中更新下载进度
});
};
//启动下载
[downloadRequest startWithCompletionBlockWithSuccess:^(__kindof HXRequest *request, NSDictionary *result, BOOL success) {
//下载完毕
//这里的success并不能代表文件真的下载成功,需要校验文件的有效性
} failure:^(__kindof HXRequest *request, NSString *errorInfo) {
//下载失败
}];