zoukankan      html  css  js  c++  java
  • iOS中ASI和AFN的区别

    一、底层实现

    1> AFN的底层基于OC的NSURLConnection和NSURLSession

    2> ASI的底层基于纯C语言的CFNetwork框架

    3> ASI的运行性能 高于 AFN

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

    1> ASI没有直接提供对服务器数据处理的方式,直接返回datastring

    2> AFN提供了多种对服务器数据处理的方式

    * JSON处理

    * XML处理

    * 其他处理

    三、监听请求的过程

    1> AFN提供了success和failure两个block来监听请求的过程(只能监听成功和失败)

    * success : 请求成功后调用

    * failure : 请求失败后调用

    2> ASI提供了3套方案,每一套方案都能监听请求的完整过程

    (监听请求开始、接收到响应头信息、接受到具体数据、接受完毕、请求失败)

    * 成为代理,遵守协议,实现协议中的代理方法

    * 成为代理,不遵守协议,自定义代理方法

    * 设置block

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

    1> AFN

    * 不容易监听下载进度和上传进度

    * 不容易实现断点续传

    * 一般只用来下载不大的文件

    2> ASI

    * 非常容易实现下载和上传

    * 非常容易监听下载进度和上传进度

    * 非常容易实现断点续传

    * 下载或大或小的文件都行

    五、ASI提供了更多的实用功能

    1> 控制圈圈要不要在请求过程中转

    2> 可以轻松地设置请求之间的依赖:每一个请求都是一个NSOperation对象

    3> 可以统一管理所有请求(还专门提供了一个叫做ASINetworkQueue来管理所有的请求对象)

    * 暂停恢复取消所有的请求

    * 监听整个队列中所有请求的下载进度和上传进度

  • 相关阅读:
    USACO castle
    【求建议】毕业之声——信院IT类毕业学子经验分享交流会
    需求管理之勇于直面需求变更
    spring boot 配置redis
    java Redis工具类
    java多线程之原子变量
    innerHTML与jquery里的html()区别介绍
    解决IE下select标签innerHTML插入option的BUG(兼容
    【转载】html中object标签详解
    最全的CSS浏览器兼容问题http://www.68design.net/Web-Guide/HTMLCSS/37154-1.html
  • 原文地址:https://www.cnblogs.com/mawenqiangios/p/5207997.html
Copyright © 2011-2022 走看看