博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AFN实现文件下载
阅读量:6259 次
发布时间:2019-06-22

本文共 1539 字,大约阅读时间需要 5 分钟。

#import "ViewController.h"

#import "AFNetworking.h"

 

@interface ViewController ()

 

@end

 

@implementation ViewController

 

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

    [self download];

}

 

-(void)download

{

    //1.创建会话管理者

    AFHTTPSessionManager *manager =[AFHTTPSessionManager manager];

    

    NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/resources/videos/minion_01.mp4"];

    

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    

    //2.下载文件

    /*

     第一个参数:请求对象

     第二个参数:progress 进度回调 downloadProgress

     第三个参数:destination 回调(目标位置)

                有返回值

                targetPath:临时文件路径

                response:响应头信息

     第四个参数:completionHandler 下载完成之后的回调

                filePath:最终的文件路径

     */

    NSURLSessionDownloadTask *download = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {

        

        //监听下载进度

        //completedUnitCount 已经下载的数据大小

        //totalUnitCount     文件数据的中大小

        NSLog(@"%f",1.0 *downloadProgress.completedUnitCount / downloadProgress.totalUnitCount);

        

    } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {

        

        NSString *fullPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:response.suggestedFilename];

        

        NSLog(@"targetPath:%@",targetPath);

        NSLog(@"fullPath:%@",fullPath);

        

        return [NSURL fileURLWithPath:fullPath];

    } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {

        

        NSLog(@"%@",filePath);

    }];

    

    //3.执行Task

    [download resume];

}

 

 

@end

转载于:https://www.cnblogs.com/liuzhenjie/p/5480237.html

你可能感兴趣的文章
flutter安装开发环境-问题记录
查看>>
mp4文件如何转换为webm格式
查看>>
如何在线创建数据流图(DFD)?
查看>>
腾讯—最新iOS面试题总结
查看>>
CGI,FASTCGI,PHP-CGI,PHP-FPM 概念
查看>>
DApp引荐机制正式上线 | IOST开发者赏金计划
查看>>
【剑指offer】9.二进制中1的个数
查看>>
GIF动画解析RNN,LSTM,GRU
查看>>
前端:开发规范
查看>>
《剑指offer》11.链表中倒数第k个节点
查看>>
老旧话题:重新看看当年感觉很难的session
查看>>
python设计模式-外观模式
查看>>
NEO学习笔记,从WIF到地址
查看>>
C语言之父Dennis Ritchie告诉你:如何成为世界上最好的程序员?
查看>>
绿色应用达标报告发布,47%主流应用未通过安全标准
查看>>
Spring Boot工程集成全局唯一ID生成器 UidGenerator
查看>>
JS之原型与原型链
查看>>
大话 JavaScript 动画
查看>>
[case43]聊聊storm的LinearDRPCTopologyBuilder
查看>>
[LeetCode] 674. Longest Continuous Increasing Subsequence
查看>>