首页 > 代码库 > iOS核心笔记——网络编程-ASI与AFN的区别
iOS核心笔记——网络编程-ASI与AFN的区别
一、底层实现:
- 1> AFN的底层基于OC的NSURLConnection和NSURLSession;
- 2> ASI的底层基于纯C语言的CFNetwork框架;
- 3> ASI的运行性能 高于 AFN。
二、对服务器返回的数据处理
1> ASI没有直接提供对服务器数据处理的方式,直接返回data\string;
2> AFN提供了多种对服务器数据处理的方式:
- JSON处理;
- XML处理;
- 其他处理。
三、监听请求的过程:
1> AFN提供了success和failure两个block来监听请求的过程(只能监听成功和失败)
- success : 请求成功后调用;
- failure : 请求失败后调用。
2> ASI提供了3套方案,每一套方案都能监听请求的完整过程
(监听请求开始、接收到响应头信息、接受到具体数据、接受完毕、请求失败)
- 成为代理,遵守协议,实现协议中的代理方法;
- 成为代理,不遵守协议,自定义代理方法;
- 设置block。
四、在文件下载和文件上传的使用难易度:
1> AFN:
- 不容易监听下载进度和上传进度;
- 不容易实现断点续传;
- 一般只用来下载不大的文件。
2> ASI:
- 非常容易实现下载和上传;
- 非常容易监听下载进度和上传进度;
- 非常容易实现断点续传;
- 下载或大或小的文件都行。
五、ASI提供了更多的实用功能:
1> 控制圈圈要不要在请求过程中转;
2> 可以轻松地设置请求之间的依赖:每一个请求都是一个NSOperation对象;
3> 可以统一管理所有请求(还专门提供了一个叫做ASINetworkQueue来管理所有的请求对象)
- 暂停\恢复\取消所有的请求;
- 监听整个队列中所有请求的下载进度和上传进度。
iOS核心笔记——网络编程-ASI与AFN的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。