源码分析之AFNetworking(一)

AFNetworking整体架构分析

Posted by Ted on May 26, 2017

0、前言

AFNetworking这个框架是iOS必备的一个第三方框架,其高效简洁的API使其成为最好的iOS网络请求框架,也让iOS开发的网络请求轻松许多,AFNetworking-Github

本文分析基于版本是3.1.0

pod 'AFNetworking', '~> 3.1.0'

因为iOS9开始NSURLConnection这个类已经被废弃,所以框架的主要类也由AFHTTPRequestOperationManager变为AFHTTPSessionManager

一、架构分析

img

从图中就可以看出,整体分为以下几个部分

  • NSURLSession:网络请求的主要类,AFURLSessionManager封装的是NSURLSession,而AFHTTPSessionManager是其子类,用于HTTP请求做了一些优化
  • Reachability:网络状况,AFNetworkReachabilityManager是用来监测当前网络状况的一个类
  • Security:网络安全,HTTPS请求就要用到AFSecurityPolicy
  • Serialization:序列化,AFURLRequestSerialization是请求前的序列化,AFURLResponseSerialization是请求完成后对结果的序列化
  • UIKit:里面则是一些UIkit的拓展Category

所以整个AFNetworking网络请求的过程就是:

img