OkHttps 是 2020 年开源的对 OkHttp3 轻量封装的框架,它独创的异步预处理器,特色的标签,灵活的上传下载进度监听与过程控制功能,在轻松解决很多原本另人头疼问题的同时,设计上也力求纯粹与优雅。
链式调用,一点到底
BaseURL、URL占位符、HTTP、WebSocket
JSON、Xml 等自动封装与解析,且支持与任意格式的数据解析框架集成
同步拦截器、异步预处理器、回调执行器、全局监听、回调阻断
文件上传下载(过程控制、进度监听)
单方法回调,充分利用 Lambda 表达式
TCP连接池、Http2
OkHttps 非常轻量(最新版仅 90KB),除 Okhttp 无第三方依赖,并且更加的开箱即用,API 也更加自然和语义化。
OkHttps 是一个纯粹的 Java 网络开发包,并不依赖 Android,这一点和 Retrofit 不同
OkHttps 用起来很优美,可以像 RxJava 那样链式用,却比 RxJava 更简单。
官网:https://okhttps.ejlchina.com/
gitee:https://gitee.com/ejlchina-zhxu/okhttps
入门使用,首先Maven引入
<dependency> <groupId>com.ejlchina</groupId> <artifactId>okhttps</artifactId> <version>3.4.2</version> </dependency>
玩RESTful的人都会需要不同的HTTP请求方式,框架都是支持的,如下说明
多种请求方式,多种回调函数,WebSocket支持,自定义构建,请求取消,框架的使用具体请参考其官网说明,非常详细。
这里只是作一个简单GET请求,来演示其使用的简洁性。
import com.ejlchina.okhttps.HTTP; public class HttpOkUtil { public static void main(String[] args) { HTTP http = HTTP.builder().build(); System.out.println(http.sync("http://www.javacui.com/") .get().getBody().toString()); } }
其sync是一个同步请求,返回一个SHttpTask对象,打开SHttpTask源码,可以看到其对各种请求的支持,这里用Get请求。
其返回的是HTTPResult对象,打开该对象的源码,它的State就是执行状态,Body就是响应体,这里拿到报文体后直接ToString即可。
上面代码将会返回本博客首页的HTML代码。
一般我们后端开发都是基于接口的,返回的都是基于JSON或者XML,那么我们就要选择其依赖的版本即可,比如与 fastjson 一起使用
<dependency> <groupId>com.ejlchina</groupId> <artifactId>okhttps-fastjson</artifactId> <version>3.4.2</version> </dependency>
起他参考官网,使用时也很简单
List<User> users = http.sync("/users") // http://api.example.com/users .get() // GET请求 .getBody() // 获取响应报文体 .toList(User.class); // 得到目标数据
当然,OkHttps 自 v2.0 后开始支持自定义消息转换器,并且可以添加多个,同样,具体参考官网。
END
Java小强
未曾清贫难成人,不经打击老天真。
自古英雄出炼狱,从来富贵入凡尘。
发表评论: