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使用及其原理解析
网友评论