Java小强个人技术博客站点    手机版
当前位置: 首页 >> 开源 >> Http框架OkHttps

Http框架OkHttps

3371 开源 | 2022-3-22

OkHttps 是 2020 年开源的对 OkHttp3 轻量封装的框架,它独创的异步预处理器,特色的标签,灵活的上传下载进度监听与过程控制功能,在轻松解决很多原本另人头疼问题的同时,设计上也力求纯粹与优雅。


链式调用,一点到底

BaseURL、URL占位符、HTTP、WebSocket

JSON、Xml 等自动封装与解析,且支持与任意格式的数据解析框架集成

同步拦截器、异步预处理器、回调执行器、全局监听、回调阻断

文件上传下载(过程控制、进度监听)

单方法回调,充分利用 Lambda 表达式

TCP连接池、Http2


OkHttps 非常轻量(最新版仅 90KB),除 Okhttp 无第三方依赖,并且更加的开箱即用,API 也更加自然和语义化。

OkHttps 是一个纯粹的 Java 网络开发包,并不依赖 Android,这一点和 Retrofit 不同

OkHttps 用起来很优美,可以像 RxJava 那样链式用,却比 RxJava 更简单。


okhttps


官网: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请求方式,框架都是支持的,如下说明

okttp.jpg


多种请求方式,多种回调函数,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请求。

okttp.jpg


其返回的是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

推荐您阅读更多有关于“ json HTTP xml OkHttps OkHttp3 Http2 ”的文章

上一篇:SpringCloud启动LN:170 Cannot determine local hostname 下一篇:CentOS7配置RocketMQ集群

猜你喜欢

发表评论:

评论:

回复 Java小强 评论于 2022-03-22 10:12
以前写过很多关于HttpClient的HTTP请求或者工具类,开源遍地的今天,还是建议选用一款稳定合适的框架来替代,这将节省很多宝贵的开发时间。
同样对于后续的开发延伸,也会起到很大的支撑作用。