AFNetworking默认的使用方法是首先获取AFHTTPSessionManager的单例manager
AFHTTPSessionManager继承自AFURLSessionManager,内部核心属性 requestSerializer和responseSerializer,用于对请求的参数进行序列化,将请求的参数序列化成请求,将响应解析成数据(json或者data)
通过manager调用GET/POST/DELETE/PATCH:parmeters:success:failure:等方法.
这个方法内部使用的是AFHTTPSessionManager的核心方法dataTaskWithHTTPMethod:URLString:parameters:uploadProgress:downloadProgress:success:failure:
通过这个方法,会先根据参数利用manager中的requestSerializer对参数进行序列化,获取想要的请求,然后会调用父类AFURLSessionManager的dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:获取数据任务.
而后通过AFURLSessionManager里的核心属性session获取数据任务dataTask,然后为dataTask添加AFURLSessionManagerTaskDelegate代理类,用于监听进度,这个类用于监听上传和下载的进度,以及对任务执行进行数据传递.主要逻辑通过session的代理执行.
同时AFURLSessionManager内部通过AFNewworkReachabilityManager对网络状态实行检测!
这是一般的使用方法,如果想要研究框架,可以下载原框架自行查看,下面是我看框架的时候翻译处理过的版本,仅供参考!