AFNetworking理解
2019-12-23 本文已影响0人
coming_168
AFNetworking由五个模块组成:
一、NSURLSession:网络通信模块(核心模块)
- 在AFN框架中,负责网络请求通讯最重要的两个类:AFURLSessionManager、AFHTTPSessionManager。
- AFHTTPSessionManager又是继承于AFURLSessionManager,进行了封装
1、AFURLSessionManager
2、AFHTTPSessionManager(对HTTP协议进行特化处理,继承于AFURLSessionmanager)
image.png
二、Seriaalization:网络通信信息序列化、反序列化模块
- AFURLRequestSerialization结构的类,主要用于网络请求之前的操作配置,负责配置网络请求的请求头部、序列化请求参数
- AFURLResponseSerialization结构的类,主要用于网络请求之后的数据处理,针对不同的数据进行处理,比如JSON、XML、plist、图片格式等数据
对应 AFURLResponseSerialization image.png
三、Security:网络通讯安全策略模块
- AFSecurityPolicy主要用于HTTPS环境下的认证安全请求通讯。如果是通过CA认证过的HTTPS访问地址,使用AFN时只需要拼接上https://即可,AFN的网络请求配置中默认使用CA认证访问HTTPS地址;若是自签的证书时,则需要当前类用于进行认证
对应AFSecurityPolicy image.png
四、Reachability:网络状态监听模块
- AFNetworkReachabilityManager,用于网络状态的监听,判断是否有网络,以及判断网络连接类型,比如蜂窝网络或WiFi环境。但当前类无法判断当前环境能否访问服务器服务。其原理是利用主机的数据包发送
对应AFNetworkReachabilityManager image.png
五、UIKit:一些控件
对应iOS的UIKit扩展库 image.png
NSURLSession由三个基本模块构成:
- NSURLSession
- NSURLSessionConfiguation
- NSURLSessionTask
初始化Session时未指定delegate的,通过block回调返回数据。
NSURLSessionTask包括三种Task类型:
- NSURLSessionDataTask
- NSURLSessionDownLoadTask
- NSURLSessionUploadTask
网络请求的过程:
创建NSURLSessionConfig对象–用创建的config对象配置初始化NSURLSession–创建NSURLSessionTask对象并resume执行,用delegate或者block回调返回数据
- AFURLSessionManager封装了上述网络交互功能
- AFURLSessionManager请求过程
1.初始化AFURLSessionManager;
2.获取AFURLSessionManager的Task对象;
3.启动Task;