市面上常见的网络框架(OKgo,Nohttp,xutils,vo

2019-10-19  本文已影响0人  残非

1.okgo:

该库是封装了okhttp的标准RESTful风格的网络框架,可以与RxJava完美结合,比Retrofit更简单易用。支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可以自定义返回对象,支持Https和自签名证书,支持超时自动重连,支持cookie与session的自动管理,支持四种缓存模式缓存网络数据,支持301、302重定向,扩展了统一的上传管理和下载管理功能。

1.支持的常用功能

一般的 get,post,put,delete,head,options请求

基于Post的大文本数据上传,postString(),postJson()等

多文件和多参数统一的表单上传(允许监听上传进度)

支持一个key上传一个文件,也可以一个Key上传多个文件

大文件下载和下载进度回调

大文件上传和上传进度回调

支持cookie的内存存储和持久化存储,支持传递自定义cookie

提供网络缓存功能,默认支持304缓存协议,并额外扩展了三种本地缓存模式

支持301、302重定向

支持链式调用

支持可信证书和自签名证书的https访问

支持根据Tag取消网络请求

支持自定义泛型Callback,自动根据泛型返回对象

具体详解:okgo 详解

2.Nohttp

NoHttp简介:

NoHttp是一个Android开源网络框架,实现了RFC2616(Http1.1)协议,一个标准的Http框架。支持普通请求、文件的上传与下载、自动维持Cookie、支持RFC2616规定的所有请求方法(POST、GET、HEAD……)、支持Https(包括访问自签名网站)、支持请求优先级、支持请求与Activity联动、提供了五种缓存策略供开发者选择……

请求和下载都是队列,平均分配每个线程的资源,支持多个请求并发。

支持GET、POST、PUT、PATCH、HEAD、DELETE、OPTIONS、TRACE等请求协议。

支持基于POST、PUT、PATCH、DELETE的文件上传(Html表单原理)。

文件下载、上传下载、上传和下载的状态回调、错误回调。

提供了五种数据缓存策略供开发者选择使用。

支持自定义Request,利用NoHttp泛型可以解析成任何数据格式(String、Json、JavaBean等)。

支持Session、Cookie的自动维持,App重启、关开机后还持续维持。

支持Https、自签名网站Https的访问、支持Https双向验证。

支持取消某个请求、取消指定多个请求、取消所有请求。

支持重定向、多级别重定向。支持代理、支持Request的优先级。

3、NoHttp是基于HttpURLConnection来封装的,它的优势在于封装的功能强大,性能也可以。简述如下:

(1)支持HTTP/HTTPS,自动维持Cookie,异步/同步请求,大文件/多文件上传,文件下载,断点续传。

(2)支持304缓存,302/303重定向,支持通过代理服务器访问地址。

(3)NoHttp是队列,自动为请求排队,可以取消指定请求,可以取消队列所有请求,亦可以停止队列。

(4)支持请求String、Bitmap、JsonObject、可自定义扩展请求类型(demo中的FastJsonRequest等)

(5)API使用简单,Request对象包涵参数、文件、请求头等;Response对象包涵响应内容, 响应头等信息。

具体使用方式:NoHttp详解

3.xutils

xUtils一个Android公共库框架,主要包括四个部分:View,Db, Http, Bitmap 四个模块。

View模块主要的功能是通过注解绑定UI,资源,事件。

Db模块是一个数据库orm框架, 简单的语句就能进行数据的操作。

Http模块主要访问网络,支持同步,异步方式的请求,支持文件的下载。

Bitmap模块是加载图片以及图片的处理, 支持加载本地,网络图片。而且支持图片的内存和本地缓存。

详细介绍:xutils详解

4.volley

所谓Volley,它是2013年Google I/O上发布的一款网络框架,基于Android平台,能使网络通信更快,更简单,更健全。

它的优点:

(1)默认Android2.3及以上基于HttpURLConnection,2.3以下使用基于HttpClient;

(2)符合Http 缓存语义 的缓存机制(提供了默认的磁盘和内存等缓存);

(3)请求队列的优先级排序;

(4)提供多样的取消机制;

(5)提供简便的图片加载工具(其实图片的加载才是我们最为看重的功能);

(6)一个优秀的框架。

不足之处也有:

它只适合数据量小,通信频繁的网络操作,如果是数据量大的,像音频,视频等的传输,还是不要使用Volley的为好

2、Volley是Google基于HttpClient + HttpURLConnection来封装的,针对短、频、快的网络请求推出的一款框架。Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕

详细介绍:Volley使用及其原理解析

参考链接

https://blog.csdn.net/u013347784/article/details/52618320

上一篇下一篇

猜你喜欢

热点阅读