关于AFN的分析

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

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

NSURLSession

功能:

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

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

        3. 将数据上传到指定URL

        4.在后台完成上述功能

传输流程

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

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

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

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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容