AFNetworking 实现下载功能(总结)
来源:互联网 发布:mysql的端口号 编辑:程序博客网 时间:2024/06/01 07:55
NSError * error = nil; // 创建下载队列 NSOperationQueue * downloadOperationQueue = [[NSOperationQueue alloc]init]; // 规定operationQueue中,最大可以同时执行的operation数量为1 downloadOperationQueue.maxConcurrentOperationCount = 1; // 创建单个下载任务(访问已下载部分的文件,实现断点续传)
NSMutableURLRequest * downloadRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:DOWNLOAD_URL_STRING]]; [[NSURLCache sharedURLCache]removeCachedResponseForRequest:downloadRequest];//创建请求<pre name="code" class="objc"> AFHTTPRequestOperation * downloadOperation = [[AFHTTPRequestOperation alloc]initWithRequest:downloadRequest]; unsigned long long downloadedPartFileSize = 0; if ([[NSFileManager defaultManager] fileExistsAtPath:DOWNLOADED_PART_FILE_PATH]) { NSDictionary * fileAttributes = [[NSFileManager defaultManager]attributesOfItemAtPath:DOWNLOADED_PART_FILE_PATH error:&error]; downloadedPartFileSize = [fileAttributes fileSize]; NSString * headerRangeFieldValue = [NSString stringWithFormat:@"bytes=%llu-", downloadedPartFileSize]; [downloadRequest setValue:headerRangeFieldValue forHTTPHeaderField:@"Range"]; } downloadOperation.outputStream = [NSOutputStream outputStreamToFileAtPath:DOWNLOADED_PART_FILE_PATH append:YES]; [downloadOperation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) { NSLog(@"%lld/%lld", totalBytesRead + downloadedPartFileSize, totalBytesExpectedToRead + downloadedPartFileSize); }]; [downloadOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"downloadOperation completion block invoked"); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"downloadOperation failure block invoked"); }]; // 将单个下载任务加入到下载队列当中 [downloadOperationQueue addOperation:downloadOperation]; // 暂停某下载任务 [downloadOperation pause]; // 继续某下载任务 [downloadOperation resume]; // 取消某下载任务(同时应将其已下载部分的文件删除) [downloadOperation cancel]; [[NSFileManager defaultManager] removeItemAtPath:DOWNLOADED_PART_FILE_PATH error:&error]; // 取消全部下载任务 [downloadOperationQueue cancelAllOperations]; // 此外还有若干方法用以判断相应一见其名便知其义的状态... downloadOperation.isReady downloadOperation.isExecuting downloadOperation.isPaused downloadOperation.isCancelled downloadOperation.isFinished // 判断downloadOperation是否存在在downloadOperationQueue当中 [downloadOperationQueue.operations containsObject:downloadOperation]
0 0
- AFNetworking 实现下载功能(总结)
- AFNetworking实现下载
- AFNetworking 下载文件简单实现源码
- iOS网络--『文件下载、断点下载』的实现(三):AFNetworking
- 实现JSP的下载功能(一)
- LinuxC语言实现下载功能(curl)
- jsp实现下载功能
- 实现文件下载功能
- C#实现下载功能
- java 实现下载功能
- PHP实现下载功能
- java 实现 下载功能
- ashx实现下载功能
- 实现文件下载功能
- Servlet 实现下载功能
- .net实现下载功能
- java实现下载功能
- JS实现下载功能
- 一些编译错误的集合
- Scala学习第十八天 文件的读取、写入、控制台输入操作代码实战
- Android 显示Gif动态图和静态图
- 发布项目,Upload AppStore解决ITMS-90096问题
- poj2236
- AFNetworking 实现下载功能(总结)
- 计算机技术领域当前的主流技术及其社会需求调查报告
- WIN7 64位系统安装JDK并配置环境变量
- 报表工具的动态数据源实现
- C#API service EF 打印出DB查询语句
- CSS实现父层透明,子层不透明
- 【DB】对数据的操作
- Python 获取当前时间
- 欢迎使用CSDN-markdown编辑器