关于AFN的分析

项目中网络请求库用的AFNetworking,今天有时间说下自己的理解

关于AFN的分析_第1张图片

以上是AFNetworking的主要目录,如果要自己定制封装请求类,一般继承AFHTTPSessionManager即可, 可继承自NSObject,发请求还需用AFHTTPSessionManager中的POST,GET 等方法,AFN本质上是用NSURLSession加载数据,NSURLSessionTask开启任务,开讲AFN前要先了解下这两个东东

NSURLSession

功能:

        1.通过URL将数据下载到内存

        2. 通过URL将数据下载到文件系统

        3. 将数据上传到指定URL

        4.在后台完成上述功能

传输流程

1. 如果要想用用NSURLSession传输数据要先创建一个NSURLSessionConfiguration参考,所以请求类中在初使化的时候即创建了NSURLSession

2. 当请求类发出POST请求时,NSURLSession根据request生成加载任务,NSURLSessionDataTask 开启加载数据的任务

关于AFN的分析_第2张图片
关于AFN的分析_第3张图片

3. 开启加载数据任务后,进入到NSURLSessionDataDelegate的回调方法中,将接收 到的数据appendData, 在回调方法中调用自定义Delegate的委托方法, 最后给block 传值 

关于AFN的分析_第4张图片
关于AFN的分析_第5张图片

至此便将NSURLSession 请求得出的结果用block 传了出去


你可能感兴趣的:(关于AFN的分析)