首页 > 代码库 > iOS之ASI和AFN有什么区别(2)

iOS之ASI和AFN有什么区别(2)

ASI和AFN有什么区别

1.性能(重点)

* ASI基于底层的CFNetwork框架

* AFN基于NSURLConnection

* 运行性能: ASI > ASN

 

2.处理服务器数据

1> AFN : 根据服务器返回数据的数据, 进行自动解析

* 服务器返回的是JSON数据, 自动转换为NSDictionary或者NSArray

* 服务器返回的是XML数据, 自动转换为NSXMLParser

 

2> ASI : 并没有对服务器的数据进行解析, 直接返回NSData二进制数据

 

3.处理请求的过程

1> AFN : success和failure两个block

2> ASI : 有3种方式处理请求过程(代理方法\SEL\block)

 

3.ASI的特色(重点)

1> 缓存

 

2> 下载和上传

* 轻松监听请求进度

* 轻松实现断点下载(ASI没有断点上传功能, 断点上传得使用socket技术)

 

3> 提供了很多扩展接口(比如做数据压缩)

* ASIDataCompressor.h

* ASIDataDecompressor.h

 

4> ASIHttpRequest继承自NSOperation

* 能用队列统一管理所有请求

* 请求之间能依赖

 

5> ASINetworkQueue

* 统一管理所有请求

* 5个下载\上传请求 --> ASINetworkQueue : 监听5个请求的总进度

* 监听所有请求的开始\失败\完毕

* shouldCancelAllRequestsOnFailure

YES : 队列中某个请求失败了, 其他所有请求都取消

NO : 队列中的某个请求失败了, 其他请求不受影响, 继续请求

 

4.AFN的特色

1> 使用简单

2> 自带了网络监控功能

iOS之ASI和AFN有什么区别(2)