ASI 和 AFN 区别
一 底层实现
- AFN的底层基于OC的NSURLConnection和NSURLSession
 - ASI的底层基于纯C语言的CFNetwork框架
 - ASI的运行性能 高于 AFN
 
二 对服务器返回的数据处理
- ASI没有直接提供对服务器数据处理的方式,直接返回data\string
 - AFN提供了多种对服务器数据处理的方式
- JSON处理
 - XML处理
 - 其他处理
 
 
三 监听请求的过程
AFN提供了success和failure两个block来监听请求的过程(只能监听成功和失败)
- success : 请求成功后调用
 - failure : 请求失败后调用
 
ASI提供了3套方案,每一套方案都能监听请求的完整过程
(监听请求开始、接收到响应头信息、接受到具体数据、接受完毕、请求失败)- 成为代理,遵守协议,实现协议中的代理方法
 - 成为代理,不遵守协议,自定义代理方法
 - 设置block
 
四 在文件下载和文件上传的使用难易度
AFN
- 不容易监听下载进度和上传进度
 - 不容易实现断点续传
 - 一般只用来下载不大的文件
 
ASI
- 非常容易实现下载和上传
 - 非常容易监听下载进度和上传进度
 - 非常容易实现断点续传
 - 下载或大或小的文件都行
 
五 ASI提供了更多的实用功能
- 控制圈圈要不要在请求过程中转
 - 可以轻松地设置请求之间的依赖:每一个请求都是一个 NSOperation 对象
 - 可以统一管理所有请求(还专门提供了一个叫做 ASINetworkQueue 来管理所有的请求对象)
 - 暂停\恢复\取消所有的请求
 - 监听整个队列中所有请求的下载进度和上传进度