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> 自带了网络监控功能

时间: 2024-10-11 08:52:34

iOS之ASI和AFN有什么区别(2)的相关文章

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两个blo

iOS分类、延展和子类的区别

iOS分类.延展和子类的区别 类别.延展.子类的区别   类别 延展 子类 功能 为类添加方法,不用知道类的源码,添加变量(通过运行时,具体参考下面注解) 为类添加私有变量和私有方法,在类的源文件中书写,所以知道类的源代码 即能为类添加方法又能添加变量 特点 添加的方法称为类的一部分,可以被子类继承 添加的变量和方法只有这个类内部访问,正常情况下外边不能访问(可以通过运行时,见注解),不能被子类继承 新添加的变量和方法只能子类才能具有,父类不具有 使用 使用原始类的对象(调用-方法)或者类(调用

iOS利用AFNetworking(AFN) 实现图片上传

1.上传图片以二进制流的形式上传 1 #pragma mark - 文件上传  2 - (IBAction)uploadImage  3 {  4     /*  5      此段代码如果需要修改,可以调整的位置  6        7      1. 把upload.php改成网站开发人员告知的地址  8      2. 把file改成网站开发人员告知的字段名  9      */ 10     // 1. httpClient->url 11      12     // 2. 上传请求P

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两

IOS ASI和AFN的 区别

一.底层实现 1> AFN的底层基于OC的NSURLConnection和NSURLSession2> ASI的底层基于纯C语言的CFNetwork框架3> ASI的运行性能 高于 AFN 二.对服务器返回的数据处理 1> ASI没有直接提供对服务器数据处理的方式,直接返回data\string2> AFN提供了多种对服务器数据处理的方式* JSON处理* XML处理* 其他处理 三.监听请求的过程 1> AFN提供了success和failure两个block来监听请

开发经验: 对AFN和ASI各自使用方法及区别的总结

经过多年的iOS开发, 现总结一下HTTP协议下的两大网络处理第三方框架的使用心得 首先来说下AFNetworking: 一.2大管理对象1.AFHTTPRequestOperationManager* 对NSURLConnection的封装 2.AFHTTPSessionManager* 对NSURLSession的封装 二.AFHTTPRequestOperationManager的具体使用1.创建管理者AFHTTPRequestOperationManager \*mgr = [AFHTT

ASI和AFN的区别

ASI总结 发送请求的2个对象 1.发送GET请求 ASIHttpRequest 2.发送POST请求 ASIFormDataRequest 二发送请求 1.同步请求 startSynchronous 2.异步请求 startAsynchronous 三 监听请求的过程 1.成为代理 四监听请求过程 如果同时设置了block和实现了代理方法 请求过程中 block和代理方法都会调用 一般的调用顺序 代理方法 先于 block方法 如果实现了 下面的代理方法,那么responseData.resp

细说ios开发和Android开发有什么区别?谁更有优势?

ios开发和安卓开发的市场分析:      首先iOS系统是应用在iPhone.iPad等高端设备上的,iOS市场占有的份额虽然不高,但是用户的消费能力比较强,生态圈较好有利于开发者直接获利.Android向大众人群普及,市场份额占有率虽然很高,但是用户群体的人均消费能力普遍弱,但是依托于用户的基数使得Android有资本跟iOS抢占市场份额. ios开发与安卓开发区别比较:      iOS:基于Unix闭源的操作系统,核心语言是Objective-C,相关的语言还有C语言(重点在数据结构和算

【转】iOS中属性与成员变量的区别

转载自http://www.cnblogs.com/crazypebble/p/3439261.html 一.类Class中的属性property 在ios第一版中,我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: @interface MyViewController :UIViewController { UIButton *myButton; } @property (nonatomic, retain) UIBut