AFNetworking理解

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;

你可能感兴趣的:(AFNetworking理解)