iOS7以后发布了NSURLSession用来替换NSURLConnection,NSURLSession使用方式有以下两种:
1.block方式
(1)创建的步骤
获取单例会话对象
创建URL对象
隐含创建request
创建NSURLSessionDataTask

  // 1.获取会话对象
NSURLSession *session = [NSURLSession sharedSession];
//另外一种生成默认的GET请求的方法
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/video"];NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];NSLog(@"%@", dict);

(2)使用NSURLSessionDataTask
创建session
创建URL
创建URLRequest
创建NSURLSessionDataTask

// 2.创建的一URL地址
NSURL *url = [NSURL URLWithString:@"http://192.168.15.172:8080/MJServer/login"];
// 3.创建一个请求对象
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"POST";
request.HTTPBody = [@"username=123&pwd=123" dataUsingEncoding:NSUTF8StringEncoding];NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];NSLog(@"%@", dict);
}];[task resume];

(3)使用NSURLSessionDownloadTask

// 1.得到session对象
NSURLSession *session = [NSURLSession sharedSession];
// 2.创建URL对象

NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/resources/test.mp4"];NSURLSessionDownloadTask *task = [session downloadTaskWithURL:url completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {//NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];NSString *filePath = [caches stringByAppendingPathComponent:response.suggestedFilename];NSFileManager *fileManager = [NSFileManager defaultManager];[fileManager moveItemAtPath:location.path toPath:filePath error:nil];}];

2.代理方式

  • (void)downLoadTask2 {
    NSURLSessionConfiguration *cfg = [NSURLSessionConfiguration defaultSessionConfiguration];
    // 使用配置对象获取会话对象
    NSURLSession *session = [NSURLSession sessionWithConfiguration:cfg delegate:self delegateQueue:[NSOperationQueue mainQueue]];

    // 创建一个URL
    NSURL *url = [NSURL URLWithString:@”http://localhost:8080/MJServer/resources/test.mp4“];
    NSURLSessionDownloadTask *task = [session downloadTaskWithURL:url];

    [task resume];

}
- (void)URLSession:(NSURLSession )session downloadTask:(NSURLSessionDownloadTask )downloadTask didFinishDownloadingToURL:(NSURL *)location {
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSString *filePath = [caches stringByAppendingPathComponent:downloadTask.response.suggestedFilename];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager moveItemAtPath:location.path toPath:filePath error:nil];
}

  • (void)URLSession:(NSURLSession )session downloadTask:(NSURLSessionDownloadTask )downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite {
    double progress = (double)totalBytesWritten / totalBytesExpectedToWrite;
    NSLog(@”已经下载了:%f”, progress);

}

NSURLSession的应用相关推荐

  1. 使用 NSURLSession 开发一个支持后台下载和断点续传的下载工具

    NSURLSession 是 iOS 系统提供给我们的原生网络操作库,它提供了网络操作相关的一系列特性支持,比如缓存控制,Cookie管理,HTTP 认证处理等等,是一套整体的网络操作处理解决方案. ...

  2. NSURLSession简介与入门

    NSURLSession 也不是什么新鲜话题了,但之前一直只是简单的使用却没有总结过其用法及注意事项,现在就整理一下关于NSRULSession的相关知识. 基本组成 使用需要配合三个基本的对象类型, ...

  3. iOS开发之网络编程--1、NSURLSession的基本使用

    前言:学习NSURLSession的使用之前,先学习一篇关于NSURLSession的好文章<From NSURLConnection to NSURLSession>或者是国内的译文&l ...

  4. 网络之NSURLSession

    NSUrlSession参考的这篇博客,自己也调试了它的代码:http://www.it165.net/pro/html/201406/15223.html ,对NSUrlSession还不太理解,先 ...

  5. NSURLSession使用说明及后台工作流程分析

    NSURLSession简介 NSURLSession是iOS7中新的网络接口,它与咱们熟悉的NSURLConnection是并列的.在程序在前台时,NSURLSession与NSURLConnect ...

  6. swift3.0:NSURLSession的使用

    一.说明 NSURLSession是OC中的会话类,在Swift中变成URLSession类,它们的实现方式是一样的,下面的示例就Swift语法进行讲解和介绍. 二.介绍: URLSession 类支 ...

  7. NSURLSession和NSURLConnection

    iOS9.0之后NSURLConnection被注销,采用NSURLSession,先介绍NSURLSession,然后介绍NSURLConnection 1.NSURLSession: post请求 ...

  8. 关于nsurlsession

    nsurlsession 是ios7新出的api,用来代替nsurlconnection .话不多说. nsurlsession包含三个方面1,NSURLSessionConfiguration ,2 ...

  9. iOS imageio nsurlsession 渐进式图片下载

    一.图片常用加载格式分两种 一般线性式 和交错/渐进式 自上而下线性式 先模糊再清晰 就概率上而言线性式使用最多,应为他所占空间普片比渐进式小.而这两种方式对于app端开发人员无需关心,这种图片存储格 ...

  10. NSURLSession

    2019独角兽企业重金招聘Python工程师标准>>> //1.创建一个网络处理的会话,取得一个全局的会话//好处(相对于NSURLSession)1,多个网络任务可以通过sessi ...

最新文章

  1. 水晶报表printmode的ActiveX打印
  2. MultiBox_Loss bug改进
  3. 模拟input type=file
  4. 新发传染病临床案例研究 Emerging Infectious Diseases. Clinical Case Studies
  5. html5 数字滚动选择器,Odometer使用JavaScript和CSS制作数字滑动效果
  6. VMware VIC
  7. 在O(1)的时间内计算n个整数落在区间[a,b]的个数(预处理时间为O(n+k))
  8. 如何在Swift中使用CoreData设置有用的自动完成UITextField
  9. 博客专题计划:《在实践中深入理解常见网络协议》
  10. Java并发:五种线程安全类型、线程安全的实现、枚举类型
  11. linux c mysql 增删改查_Linux C语言连接MySQL 增删改查操作
  12. nginx常见配置详解
  13. 一核一g负载均衡不能超过多少_多核程序设计(考试题)
  14. 【Docker】拉取Oracle 11g镜像配置
  15. 淘宝中的一些基本CSS代码
  16. python栈是什么意思_Python算法之栈(stack)的实现
  17. 如何利用Vue3管理系统实现动态路由和动态侧边菜单栏
  18. 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(8)
  19. spring 定时器时间配置
  20. ML之VC维:VC维(Vapnik-Chervonenkis Dimension)理论的概述(衡量模型复杂度和预测能力的指标)的简介、案例理解之详细攻略

热门文章

  1. 机器学习之基于SVM实现多类人脸识别
  2. Codeforces Round #647 (Div. 2) - Thanks, Algo Muse!(AB)
  3. java反射成员变量_java反射之成员变量的反射
  4. 管理维护MySQL的SQL语句有哪些_MySQL常用管理SQL语句
  5. linux7怎么安装yum,centos7下怎么安装yum
  6. tornado服务器动态文件,tornado 实现服务器消息推送功能
  7. php dirtoarray,PHP Ds\Stack toArray()用法及代码示例
  8. cpu和内存之间——地址映射
  9. 常用串口调试工具比较
  10. 深度学习领域专业词汇_深度学习时代的人文领域专业知识