1.ASIHttpRequest和AFNetworking的区别

1.什么是ASIHttpRequest:

ASI全称ASIHttpRequest 简称("终结者"),是一个基于C语言的CFNetwork框架,2012的使用停止了对ASI的更新.
所以没有对ASI的维护,用的人原来越少了,之后就兴起了AFNetworking这个网络请求库!!

2.什么是AFNetworking:

AFN 全称为 AFNetworking,是一个构建与在 NSURLConnection、NSOperation 
以及其他熟悉的 Founation 技术之上的一个第三方网络框架。
AFN2.0:是基于oc中的NSURLConnection类 (AFHTTPRequestOperationManager)
AFN3.0:是基于oc中的NSRULSession类(AFHTTPSessionManager)

3.AFNetworking使用的场景:

一、发送网络请求包含以下
二、Get请求
三、Post请求
四、上传图片
五、下载文件,断点下载
六、实时监测网络状态

4.ASI和AFN的区别:

1. 底层实现
   1> AFN的底层基于OC的(2.0)NSURLConnection和(3.0)NSURLSession
   2> ASI的底层基于纯C语言的CFNetwork框架
   3> ASI的运行性能 高于 AFN
----------------------------------------------------------------------------------------------
2.对服务器返回的数据处理
  1> ASI没有直接提供对服务器数据处理的方式,直接返回data\string
  2> AFN提供了多种对服务器数据处理的方式
    * JSON处理
    * XML处理
    * 其他处理
---------------------------------------------------------------------------------------------
3.监听请求的过程
    1> AFN提供了success和failure两个block来监听请求的过程(只能监听成功和失败)(3.0以后添加了进度)
   * success : 请求成功后调用
   * failure : 请求失败后调用
    2> ASI提供了3套方案,每一套方案都能监听请求的完整过程
(监听请求开始、接收到响应头信息、接受到具体数据、接受完毕、请求失败)
   * 成为代理,遵守协议,实现协议中的代理方法
   * 成为代理,不遵守协议,自定义代理方法
   * 设置block
---------------------------------------------------------------------------------------------
4.在文件下载和文件上传的使用难易度
  1> AFN
      * 不容易监听下载进度和上传进度
      * 不容易实现断点续传
      * 一般只用来下载不大的文件
  2> ASI
      * 非常容易实现下载和上传
      * 非常容易监听下载进度和上传进度
      * 非常容易实现断点续传
      * 下载或大或小的文件都行
5.ASI提供了更多的实用功能
  1> 控制圈圈要不要在请求过程中转
  2> 可以轻松地设置请求之间的依赖:每一个请求都是一个NSOperation对象
  3> 可以统一管理所有请求(还专门提供了一个叫做ASINetworkQueue来管理所有的请求对象)
      * 暂停\恢复\取消所有的请求
      * 监听整个队列中所有请求的下载进度和上传进度
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄 ASI和AFN有什么区别 1.性能(重点) * A...
    石虎132阅读 4,505评论 3 15
  • AFN什么是AFN全称是AFNetworking,是对NSURLConnection、NSURLSession的一...
    醉叶惜秋阅读 4,974评论 0 0
  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 10,503评论 0 12
  • 13.服务器图片改了,url没有变,需求,服务器的图片变了,就从服务器加载图片,如果服务器的没变,就从本地加载 1...
    AlanGe阅读 5,045评论 0 1
  • 1.内存管理 2.单例的理解 3.post和get的区别 4.md5和base64是什么,有什么区别 5.简单谈谈...
    coder_Wg阅读 5,037评论 1 6