AFNetworking 源码分析(一)
- 网络通信模块(AFURLSessionManager、AFHTTPSessionManger)
- 网络状态监听模块(Reachability)
- 网络通信安全策略模块(Security)
- 网络通信信息序列化/反序列化模块(Serialization)
- 对于iOS UIKit库的扩展(UIKit)
其中的核心是AFURLSessionManager。 AFURLSessionManager主要是对NSURLSession的封装,AFHTTPSessionManager是继承AFURLSessionManager,这个类并没有做什么,主要是做了一些简单的封装,最终请求都是分发给了父类去做。
首先我们简略的分析一下一个网络请求的流程是怎样的:
- 第一步,我们将请求的url,参数编码成我们请求时需要的request,在AF中这个主要是由AFURLRequestSerialization来做。
- 第二步,我们就要开始发起请求,在AF中这个主要是由AFURLSessionManager来做。
- 第三步,请求成功后对返回的数据进行处理,在AF中这个主要是由AFURLResponsesSerialization来做。