iOS开发 GET、POST请求方法:NSURLSession篇
2016-07-29 15:49
134 查看
NSURLConnection,在iOS 9被宣布弃用,本文不使用NSURLConnection进行网络编程,有兴趣的童鞋可以参考:
iOS开发 GET、POST请求方法(NSURLConnection篇)
介绍:NSURLSession,为iOS7中的新网络接口,是在2013年的WWDC上,由Apple提出的NSURLConnection继任者的:NSURLSession。
NSURLSession,与NSURLConnection是并列的,且可以支持后台相关的网络操作的新特性;与NSURLConnection不同的是,NSURLSession把NSURLConnection替换成NSURLSession, NSURLSessionConfiguration,NSURLSessionTask。
NSURLSession一般分别两部操作:第一,通过NSURLSession的实例创建task;第二,执行task;
而NSURLSessionTask,也就是task,可以把它当作所谓的任务。
NSURLSessionTask是一个抽象子类,它有三个具体的子类是可以直接使用的:NSURLSessionDataTask,NSURLSessionUploadTask和NSURLSessionDownloadTask。这三个类应用的三个基本网络任务:获取数据、上传文件、下载文件。与数据有关的NSURLSessionDataTask也可以胜任上传下载的任务,所以经常使用到。
————示例————–
一、GET方法
二、POST方法
三、NSURLSessionDataDelegate代理方法
从前面两种方法中,我们都可以看出,相比NSURLConnection,NSURLSession提供了block方式处理返回数据的简便方式,但是,如果项目需要在网络请求数据的过程中,要做进一步的处理的话,需要调用NSURLSession的代理方法。
通常,使用代理方法需要先设置代理对象,但是通过查看NSURLSessionDataDelegate文档,我们可以看到如下,代理属性delegate为只读状态。
那么我们需要怎样设置代理对象呢?下面我们通过代码演示关于代理方法的使用:
首先在文件开头添加代理协议,
主方法的编写如下:
关于代理行为:
四、NSURLSessionDownloadTask
1.NSURLSessionDownloadTask:文件下载任务
2.NSURLSessionDownloadDelegate代理方法:
首先添加协议
代理方法如下:
五、NSURLSessionUploadTask
1. NSURLSessionUploadTask上传文件的方式有2种:
GET方法:
POST方法:
不同的点,在于,用post方法需要添加网络路径的请求体body,而在实际开发中,上传文件一般使用post方式,更加安全可靠。
其他:
当然,对于使用NSURLSession开发的项目来说,还有更多的方式可以执行,需要我们在日常开发过程多多发现,以便更好地使用这个较新的网络接口,例如AFNetWorking2.0版本之后,就有了基于NSURLSession的封装运用,具体的有兴趣的童鞋可以去github了解下。
本文作者:伯乐在线 - 啊左~
iOS开发 GET、POST请求方法(NSURLConnection篇)
介绍:NSURLSession,为iOS7中的新网络接口,是在2013年的WWDC上,由Apple提出的NSURLConnection继任者的:NSURLSession。
NSURLSession,与NSURLConnection是并列的,且可以支持后台相关的网络操作的新特性;与NSURLConnection不同的是,NSURLSession把NSURLConnection替换成NSURLSession, NSURLSessionConfiguration,NSURLSessionTask。
NSURLSession一般分别两部操作:第一,通过NSURLSession的实例创建task;第二,执行task;
而NSURLSessionTask,也就是task,可以把它当作所谓的任务。
NSURLSessionTask是一个抽象子类,它有三个具体的子类是可以直接使用的:NSURLSessionDataTask,NSURLSessionUploadTask和NSURLSessionDownloadTask。这三个类应用的三个基本网络任务:获取数据、上传文件、下载文件。与数据有关的NSURLSessionDataTask也可以胜任上传下载的任务,所以经常使用到。
————示例————–
一、GET方法
从前面两种方法中,我们都可以看出,相比NSURLConnection,NSURLSession提供了block方式处理返回数据的简便方式,但是,如果项目需要在网络请求数据的过程中,要做进一步的处理的话,需要调用NSURLSession的代理方法。
通常,使用代理方法需要先设置代理对象,但是通过查看NSURLSessionDataDelegate文档,我们可以看到如下,代理属性delegate为只读状态。
首先在文件开头添加代理协议,
1.NSURLSessionDownloadTask:文件下载任务
首先添加协议
1. NSURLSessionUploadTask上传文件的方式有2种:
GET方法:
其他:
当然,对于使用NSURLSession开发的项目来说,还有更多的方式可以执行,需要我们在日常开发过程多多发现,以便更好地使用这个较新的网络接口,例如AFNetWorking2.0版本之后,就有了基于NSURLSession的封装运用,具体的有兴趣的童鞋可以去github了解下。
本文作者:伯乐在线 - 啊左~
相关文章推荐
- 关于iOS socket都在这里了
- iOS自适应button循环创建
- [iOS]书写Xcode注释文档
- iOS QQ实现第三方登录以及遇到的问题
- iOS CAEmitterLayer 和 CAEmitterCell 粒子发射
- iOS笔记 runtime Method Swizzle 方法交换//
- 苹果开发帐号说明
- 如何在 iOS 中解决循环引用的问题
- Unable to install "XXX"
- iOS里常见的几种信息加密步骤简单总结
- 漫长暑假 有么有一起组团打怪的?这个大赛可以拿10万奖金呢
- iOS开发之runtime精准获取电池电量
- ios xmpp 完美的聊天应用简介
- iOS—最全的真机测试教程
- iOS开发-为程序添加应用设置
- iOS手势密码浅析
- 2年iOS开发程序媛从紧张害怕,小心谨慎的工作到离不开这个行业
- 一步一步实现iOS QQ第三方登录
- iOS 延时操作
- IOS Dev Intro - Third Party Library Process