此文将从四个方面来对AFNetworking框架进行讲解
1.什么是AFN
2.为什么要使用AFN
3.AFN怎么用
4.AFN和AFI的
一、什么是AFN
AFN全称为AFNetworking,是一个构建于NSURLConnection、NSOperation以及其他熟悉的Foundation技术之上的第三方框架。
二、为什么要使用AFN
AFN对网络请求部分做了很好的封装,并且拥有良好的架构,丰富的api,以及模块化构建方式,使用起来非常轻松。
三、AFN怎么用以及几种常用的方式
- AFN主要在以下两种场景中使用
1.发送网络请求
2.实时监测网络状态 - AFHTTPRequestOperationManager:内部封装的是NSURLConnection网络请求管理类,用来负责发送网络请求,是使用最多的一个类。
- AFHTTPSessionManager:内部封装的是NSURLSession网络请求管理类,用来负责发送网络请求,是使用最多的一个类。
两个网络请求管理类定义的API完全相同:
一些主要的工具类:
- AFNetworkReachabilityManager.h:实时监测网络状态改变的管理类。
- AFSecurityPolicy.h:HTTPS需要使用
- AFURLRequestSerialization:数据解析时会使用
- AFHTTPRequestSerializer:万能解析器
- AFJSONResponseSerializer:JSON解析器
- AFXMLParserResponseSerializer:XML解析器
AFHTTPSessionManager的基本使用步骤:
1、创建管理者
2、设置管理者的数据解析类型,默认为JSON格式,可手动修改其他类型
3、发送网络请求
3.1、首先要明确发送的是什么类型的请求(get/post....)
3.2、网络接口的参数:
a.urlString:网络接口地址
b.parameters:参数字典
c.progress:网络进度
d.success:成功回调
e.failure:失败回调
AFHTTPRequestOperationManager的基本使用步骤:
1、创建管理者
2、封装请求参数
3、发送请求
四、AFN和ASI的区别:
- 1.底层实现
AFN的底层基于OC的NSURLConnection和NSURLSession
ASI的底层基于纯C语言的CFNetwork框架
ASI的运行性能高于AFN - 2.对服务器返回的数据处理
ASI没有直接提供对服务器数据处理的方式,直接返回data\string
AFN提供了多种对服务器数据处理的方式:JSON,XML,.... - 3.监听请求的过程
AFN提供了success和failure两个block来监听请求的过程
ASI提供了三套方案,每一套都能监听请求的完整过程:a. 成为代理,遵守协议,实现协议中的代理方法 b. 成为代理,不遵守协议,自定义代理方法 c. 设置block - 4.在文件下载和文件上传的使用难易度
AFN不容易监听下载进度和上传进度,不容易实现断点续传,一般只能下载不大的文件。
ASI非常容易实现下载和上传,非常容易监听下载进度和上传进度,非常容易实现断点续传,下载的文件可大可小。 - 5.ASI提供了更多的实用功能
控制圈圈要不要在请求过程中转,可以轻松设置请求之间的依赖:每一个请求都是NSOperation对象,可以统一管理所有的请求。
文章参考总结于网上,如有侵权请与作者联系。