AFNetworking 源码分析(一)

706 阅读1分钟

AFNetworking 源码分析(一)

AF主要分为以下5个模块:

  1. 网络通信模块(AFURLSessionManager、AFHTTPSessionManger)
  2. 网络状态监听模块(Reachability)
  3. 网络通信安全策略模块(Security)
  4. 网络通信信息序列化/反序列化模块(Serialization)
  5. 对于iOS UIKit库的扩展(UIKit)

其中的核心是AFURLSessionManager。 AFURLSessionManager主要是对NSURLSession的封装,AFHTTPSessionManager是继承AFURLSessionManager,这个类并没有做什么,主要是做了一些简单的封装,最终请求都是分发给了父类去做。

首先我们简略的分析一下一个网络请求的流程是怎样的:

  1. 第一步,我们将请求的url,参数编码成我们请求时需要的request,在AF中这个主要是由AFURLRequestSerialization来做。
  2. 第二步,我们就要开始发起请求,在AF中这个主要是由AFURLSessionManager来做。
  3. 第三步,请求成功后对返回的数据进行处理,在AF中这个主要是由AFURLResponsesSerialization来做。