AFNetworking 详解
2016-04-10 17:33
260 查看
一、系统提供的类和作用:
1.NSURLSessionConfiguration类
其中NSURLSessionConfiguration用于配置会话的属性,可以通过该类配置会话的工作模式
2.NSURLSession类
第一种方式是使用静态的sharedSession方法,该类使用共享的会话,该会话使用全局的Cache,Cookie和证书。
第二种方式是通过sessionWithConfiguration:方法创建对象,也就是创建对应配置的会话,与NSURLSessionConfiguration合作使用。
第三种方式是通过sessionWithConfiguration:delegate:delegateQueue方法创建对象,二三两种方式可以创建一个新会话并定制其会话类型。该方式中指定了session的委托和委托所处的队列。当不再需要连接时,可以调用Session的invalidateAndCancel直接关闭,或者调用finishTasksAndInvalidate等待当前Task结束后关闭。这时Delegate会收到URLSession:didBecomeInvalidWithError:这个事件。Delegate收到这个事件之后会被解引用。
3.NSURLSessionTask类
NSURLSessionTask是一个抽象子类,它有三个子类:NSURLSessionDataTask,NSURLSessionUploadTask和NSURLSessionDownloadTask。这三个类封装了现代应用程序的三个基本网络任务:获取数据,比如JSON或XML,以及上传和下载文件。
4.NSURLSessionDelegate和NSURLSessionTaskDelegate协议
在协议的方法中可以完成各种各样的回调动作,如身份验证、完成任务后的动作、错误处理和后台任务完成的动作等。委托方法指定在NSURLSession中一定数量的字节传输使用int64_t类型的参数。
二、AFNetworking
实际上只是对
提供一些简单易用的 API 方便我们在 iOS 开发中发出网络请求并在其上更快地构建网络层组件并提供合理的接口.
负责创建和管理
管理
实现
使用
使用
引入
引入
它通过
持有一个字典
data task 实例
引入
实现了全部的代理方法来提供 block 接口
通过方法调剂在 data task 状态改变时,发出通知
来源:
http://draveness.me/afnetworking1/
http://draveness.me/afnetworking2/
1.NSURLSessionConfiguration类
其中NSURLSessionConfiguration用于配置会话的属性,可以通过该类配置会话的工作模式
2.NSURLSession类
第一种方式是使用静态的sharedSession方法,该类使用共享的会话,该会话使用全局的Cache,Cookie和证书。
第二种方式是通过sessionWithConfiguration:方法创建对象,也就是创建对应配置的会话,与NSURLSessionConfiguration合作使用。
第三种方式是通过sessionWithConfiguration:delegate:delegateQueue方法创建对象,二三两种方式可以创建一个新会话并定制其会话类型。该方式中指定了session的委托和委托所处的队列。当不再需要连接时,可以调用Session的invalidateAndCancel直接关闭,或者调用finishTasksAndInvalidate等待当前Task结束后关闭。这时Delegate会收到URLSession:didBecomeInvalidWithError:这个事件。Delegate收到这个事件之后会被解引用。
3.NSURLSessionTask类
NSURLSessionTask是一个抽象子类,它有三个子类:NSURLSessionDataTask,NSURLSessionUploadTask和NSURLSessionDownloadTask。这三个类封装了现代应用程序的三个基本网络任务:获取数据,比如JSON或XML,以及上传和下载文件。
4.NSURLSessionDelegate和NSURLSessionTaskDelegate协议
在协议的方法中可以完成各种各样的回调动作,如身份验证、完成任务后的动作、错误处理和后台任务完成的动作等。委托方法指定在NSURLSession中一定数量的字节传输使用int64_t类型的参数。
二、AFNetworking
实际上只是对
NSURLSession高度地封装,
提供一些简单易用的 API 方便我们在 iOS 开发中发出网络请求并在其上更快地构建网络层组件并提供合理的接口.
AFURLSessionManager绝对可以称得上是 AFNetworking 的核心。
负责创建和管理
NSURLSession
管理
NSURLSessionTask
实现
NSURLSessionDelegate等协议中的代理方法
使用
AFURLSessionManagerTaskDelegate管理进度
使用
_AFURLSessionTaskSwizzling调剂方法
引入
AFSecurityPolicy保证请求的安全
引入
AFNetworkReachabilityManager监控网络状态
小结
AFURLSessionManager是对
NSURLSession的封装
它通过
- [AFURLSessionManager dataTaskWithRequest:completionHandler:]等接口创建
NSURLSessionDataTask的实例
持有一个字典
mutableTaskDelegatesKeyedByTaskIdentifier管理这些
data task 实例
引入
AFURLSessionManagerTaskDelegate来对传入的
uploadProgressBlock
downloadProgressBlock
completionHandler在合适的时间进行调用
实现了全部的代理方法来提供 block 接口
通过方法调剂在 data task 状态改变时,发出通知
来源:
http://draveness.me/afnetworking1/
http://draveness.me/afnetworking2/
相关文章推荐
- Servlet入门(二)
- 结对汉堡
- nginx 日志分析,python 实现
- 日期
- app的国际化方案(待整理)
- 堆排序 和 堆的大数据应用
- 电梯演讲
- 多层循环的变量如何将值传出
- ASP.NET MVC4入门教程(七):给电影表和模型添加新字段
- C语言中整型与指针之间转换的注意点
- 有关输入输出流和头文件的问题(在vs中)
- Tomcat中 server.xml 的Context的配置
- 中文字符转数字(可能会很大)
- 学习vb的心得体会
- /[\u4e00-\u9fa5]/汉字的正则匹配
- 解决HTML5布局,兼容IE问题
- Android开发之事件分发和Listener
- java递归算法总结
- 绘图(五,Android图像变换基础知识矩阵Matrix)
- 堆是实现