美文网首页
AFNetworking理解

AFNetworking理解

作者: coming_168 | 来源:发表于2019-12-23 13:54 被阅读0次

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理解

      本文链接:https://www.haomeiwen.com/subject/smrznctx.html