AFNetworking与ASIHTTPRequest

2023-12-20 04:38

本文主要是介绍AFNetworking与ASIHTTPRequest,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、底层实现

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

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

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

AFNetworking地址: https://github.com/AFNetworking/AFNetworking

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

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来管理所有的请求对象)

  • 暂停/恢复/取消所有的请求
  • 监听整个队列中所有请求的下载进度和上传进度


作者:Swift波波
链接:http://www.jianshu.com/p/b023ba0ba17e
來源:简书

这篇关于AFNetworking与ASIHTTPRequest的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/514784

相关文章

AFNetworking 2.0使用(持续更新)

导入AFNetworking 2.0 文件夹,引入头文件AFNetworking.h --------------- *使用NSURLSessionDownloadTask来下载一张图片,并带有下载进度(以下两段代码是一起的,注意) NSProgress为iOS7新增加的类 // 定义一个progress指针NSProgress *progress;// 创建一个U

AFNetworking 提示The resource could not be loaded because the App Transport Security policy requires

原因:iOS9以后,苹果把原http协议改成了https协议,所以不能直接在http协议下GET/POST 解决方案之一: 直接编辑工程文件下的Info.plist文件,加入以下代码   <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict> 如图

ios afnetworking怎么用post请求追加参数

随着asihttprequest的停止更新,许多人都转向了AFNetworking、 MKNetworkKit.我也是其中一个。于是我从网上找了许多文章作参考,但是结果都是失败告终。研究了好久都搞不透,最后还是请人帮忙搞定了。经常从网上索取免费资料的一员,要有回报的思想,也为了让更多的人少走些弯路,所以下面是代码:(有错误可以指出)首先:将AFNetworking、UIKit+AFNetworki

iOS开发 AFNetworking 3.0使用遇到的问题补充

1.很多初学者,在每处用到网络请求的地方会直接拿afn实例去请求,从而带来了后续难以维护代码的问题 [[AFHTTPSessionManager manager] POST:nil parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {} failure:^(NSURLSessionDataTas

IOS:ASIHttpRequest学习2

ASIHTTPRequest是一款极其强劲的HTTP访问开源项目。让简单的API完成复杂的功能, 如: 异步请求,队列请求,GZIP压缩,缓存,断点续传,进度跟踪,上传文件,HTTP认证 在新的版本中,还加入了Objective-C闭包Block的支持,让我们的代码更加轻简灵活。 下面就举例说明它的API用法。 1、发起同步请求 同步意为着线程阻塞,在主线程中使用此方法会使应用Hang

IOS:ASIHttpRequest学习1

ASIHTTPRequest,是一个直接在CFNetwork上做的开源项目,提供了一个比官方更方便更强大的HTTP网络传输的封装。 ASIHTTPRequest 官方网站地址:http://allseeing-i.com/     一、介绍 特色功能如下: 1.下载的数据直接保存到内存 或文件 系统里 2.提供直接提交(HTTP POST)文件的API 3.可以直接访问与修改HTTP

[Error]AFNetworking使用GET请求报错(Code=-1016)

Error打印: Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html" UserInfo={NSLocalizedDescription=Request failed: unacceptable content

iOS 网络请求框架AFNetworking使用方法(欢迎提建议和分享遇到的问题)

http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库。最新版本支持session, xctool单元测试 。网络获取数据一直是手机软件的重中之重,如果处理的不好,会造成很差的用户体验。 随着ASIHTTPRequest的停止更新,更换网络库是必然的事情, AFNetworking就是很好的替代

从今天开始 阅读AFNetworking 的源码(一)

这是我第一看源码,之前面试的时候老有人问我有看源码的习惯吗?其实我一直想看,没时间,刚好遇到一个超级闲的公司,我就开始的我看源码之路了。      我的方法很简单就是一句句的,从最简单的开始,遇到不熟悉的类,还有方法就会查查,首先遇到的类是一个关于网络状态的显示的类 AFNetworkActivityIndicatorManager  ,用到的方法就是 [[AFNetworkAc

AFNetworking 使用https

AFNetworking https网络请求 验证证书 AFHTTPSessionManager *manager =[[AFHTTPSessionManager manager] initWithBaseURL:[NSURL URLWithString:APP_DATE_URL]];NSString *cerPath = [[NSBundle mainBundle] pathForReso