iOS-AFNetworking与ASIHTTPRequest的区别

一、底层实现

1、AFN的底层实现基于OC的NSURLConnection和NSURLSession

2、ASI的底层实现基于纯C语言的CFNetwork框架

3、因为NSURLConnection和NSURLSession是在CFNetwork之上的一层封装,因此ASI的运行性能高于AFN

二、对服务器返回的数据处理

1、ASI没有直接提供对服务器数据处理的方式,直接返回的是NSData/NSString 
2、AFN提供了多种对服务器数据处理的方式 
(1)JSON处理-直接返回NSDictionary或者NSArray 
(2)XML处理-返回的是xml类型数据,需对其进行解析 
(3)其他类型数据处理

三、监听请求过程

1、AFN提供了success和failure两个block来监听请求的过程(只能监听成功和失败) 
* success : 请求成功后调用 
* failure : 请求失败后调用 
2、ASI提供了3套方案,每一套方案都能监听请求的完整过程 
(监听请求开始、接收到响应头信息、接受到具体数据、接受完毕、请求失败) 
* 成为代理,遵守协议,实现协议中的代理方法 
* 成为代理,不遵守协议,自定义代理方法 
* 设置block

四、在文件下载和文件上传的使用难易度

1、AFN 
*不容易实现监听下载进度和上传进度 
*不容易实现断点续传 
*一般只用来下载不大的文件 
2、ASI 
*非常容易实现下载和上传 
*非常容易监听下载进度和上传进度 
*非常容易实现断点续传 
*下载大文件或小文件均可 
3、实现下载上传推荐使用ASI

五、网络监控

1、AFN自己封装了网络监控类,易使用 
2、ASI使用的是Reachability,因为使用CocoaPods下载ASI时,会同步下载Reachability,但Reachability作为网络监控使用较为复杂(相对于AFN的网络监控类来说) 
3、推荐使用AFN做网络监控-AFNetworkReachabilityManager

六、ASI提供的其他实用功能

1、控制信号旁边的圈圈要不要在请求过程中转 
2、可以轻松地设置请求之间的依赖:每一个请求都是一个NSOperation对象 
3、可以统一管理所有请求(还专门提供了一个叫做ASINetworkQueue来管理所有的请求对象) 
* 暂停/恢复/取消所有的请求 
* 监听整个队列中所有请求的下载进度和上传进度

时间: 2024-10-28 08:45:17

iOS-AFNetworking与ASIHTTPRequest的区别的相关文章

iOS网络层框架之AFNetworking与 ASIHTTPRequest对比

在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题.一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性.这些组件把复杂的网络底层操作封装成友好的类和方法,并且加入异常处理等. 那么,大家最常用的组件是什么?这些组件是如何提升开发效率和稳定性的?哪一款组件适合自己,是 AFNetworking(AFN)还是 ASIHTTPRequest(ASI)?几乎每一个iOS互联网应用开发者都会面对这样的选择题,要从这两个最常用的组件里选出一个好的还真不是那么容易

对比iOS网络组件:AFNetworking VS ASIHTTPRequest

对比iOS网络组件:AFNetworking VS ASIHTTPRequest 在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题.一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性.这些组件把复杂的网络底层操作封装成友好的类和方法,并且加入异常处理等. 那么,大家最常用的组件是什么?这些组件是如何提升开发效率和稳定性的?哪一款组件适合自己,是 AFNetworking(AFN)还是 ASIHTTPRequest(ASI)?几乎每一个iOS互联网应

对比iOS网络组件:AFNetworking VS ASIHTTPRequest(转载)

在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题.一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性.这些组件把复杂的网络底层操作封装成友好的类和方法,并且加入异常处理等. 那么,大家最常用的组件是什么?这些组件是如何提升开发效率和稳定性的?哪一款组件适合自己,是 AFNetworking(AFN)还是 ASIHTTPRequest(ASI)?几乎每一个iOS互联网应用开发者都会面对这样的选择题,要从这两个最常用的组件里选出一个好的还真不是那么容易

iOS AFNetworking的使用

AFNetworking几乎是iOS上最常用的HTTP库了,AFNetworking也确实用起来简单,重要的API就那么几个,但是就那么几个就足够用了.下面介绍几个AFNetworking 2.x重要的API. 如果你要支持iOS6那么你应该要使用基于NSURLConnection封装的AFHTTPRequestOperationManager(推荐用manager,尽管用AFHTTPRequestOperation也可以). GET请求 AFHTTPRequestOperationManage

AFNetworking、ASIHTTPRequest中SSL的使用

首先介绍下AFNetworking中的使用: 2.0要注意个地方:IOS7及其以后,采用AFHTTPSessionManager,IOS7之前采用AFHTTPRequestOperationManager. 以AFHTTPSessionManager为例,代码如下: <span style="font-size:14px;">AFHTTPSessionManager *httpClient = [AFHTTPSessionManager manager]; httpClie

iOS: AFNetworking手动配置(iOS7.1, AF2.2.4)

一.下载AFNetworking. 二.将AFNetworking-master下的AFNetworking目录拖入到项目中 三.为项目添加Linking to a Library or Framework CoreLocation.framework SystemConfiguration.framework Security.framework MobileCoreServices.framework 四.修改项目.pch文件 1 #ifdef __OBJC__ 2 #import <UIK

ios中@class和 #import区别

很多刚开始学习iOS开发的同学可能在看别人的代码的时候会发现有部分#import操作写在m文件中,而h文件仅仅使用@class进行声明,不禁纳闷起来,为什么不直接把#import放到h文件中呢?这 是因为h文件在修改后,所有import该h文件的所有文件必须重 新build,因此,如果把#import写在h文件中,import该h文件的文件也就会产生不必要的编译,增加编译时间,特别是在项目文件多的情况 下.想象一下,如果只是修改一个h文件而导致上百个文件不必要的编译,那是一件多么让人纠结的事情.

ios中的ASIHTTPRequest的同步请求和异步请求

1.首先加入ASI开源库 2. WebImageView.h #import <UIKit/UIKit.h> #import "ASIHTTPRequest.h" @interface WebImageView :UIImageView<ASIHTTPRequestDelegate> - (void)setImageURL:(NSURL *)url; @end WebImageView.m #import "WebImageView.h" #

iOS 对比网络组件:AFNetworking 与 ASIHTTPRequest

在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题.一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性.这些组件把复杂的网络底层操作封装成友好的类和方法,并且加入异常处理等. 那么,大家最常用的组件是什么?这些组件是如何提升开发效率和稳定性的?哪一款组件适合自己,是 AFNetworking(AFN)还是 ASIHTTPRequest(ASI)?几乎每一个iOS互联网应用开发者都会面对这样的选择题,要从这两个最常用的组件里选出一个好的还真不是那么容易

(转)很客观的对比iOS网络组件:AFNetworking VS ASIHTTPRequest

在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题.一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性.这些组件把复杂的网络底层操作封装成友好的类和方法,并且加入异常处理等. 那么,大家最常用的组件是什么?这些组件是如何提升开发效率和稳定性的?哪一款组件适合自己,是 AFNetworking(AFN)还是 ASIHTTPRequest(ASI)?几乎每一个iOS互联网应用开发者都会面对这样的选择题,要从这两个最常用的组件里选出一个好的还真不是那么容易