导读 Forest 是一个开源的声明式 Java HTTP 客户端框架,它能够将 HTTP 的所有请求信息(包括 URL、Header 以及 Body 等信息)绑定到您自定义的 Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP 请求

Forest 介绍

Forest 是一个开源的声明式 Java HTTP 客户端框架,它能够将 HTTP 的所有请求信息(包括 URL、Header 以及 Body 等信息)绑定到您自定义的 Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP 请求

Forest 如何使用

Forest 不需要您编写具体的 HTTP 调用过程,只需要您定义一个接口,然后通过 Forest 注解将 HTTP 请求的信息添加到接口的方法上即可。请求发送方通过调用您定义的接口便能自动发送请求和接受请求的响应

Forest 的工作原理

Forest 会将您定义好的接口通过动态代理的方式生成一个具体的实现类,然后组织、验证 HTTP 请求信息,绑定动态数据,转换数据形式,SSL 验证签名,调用后端 HTTP API (httpclient 等 API) 执行实际请求,等待响应,失败重试,转换响应数据到 Java 类型等脏活累活都由这动态代理的实现类给包了。 请求发送方调用这个接口时,实际上就是在调用这个干脏活累活的实现类

获得奖项

2021 年度 OSC 中国开源项目评选「最受欢迎项目」

https://www.oschina.net/project/top_cn_2021

文档和示例

项目官网
JavaDoc
Demo 工程

简单的例子

创建一个 interface,并用 @Get 注解修饰接口方法。

public interface MyClient {
    @Get("http://localhost:8080/hello")
    String hello();
}

通过 @Get 注解,将上面的 MyClient 接口中的 simpleRequest() 方法绑定了一个 HTTP 请求, 其 URL 为 http://localhost:8080/hello ,并默认使用 GET 方式,且将请求响应的数据以 String 的方式返回给调用者

本次更新
修复的问题

fix: 匹配验证 secure cookie
fix: cookie 携带请求不成功 (#I5F8IY:cookie 携带请求不成功)
fix: OKHTTP 连接泄漏问题 (#I5E613:OKHTTP 连接泄漏问题)
fix: forest 支持 springboot 1.5.14.realese 启动失败 (#I5FDBG:forest 支持 springboot 1.5.14.realese 启动失败)
fix: 传的参数带有 + 号,但是服务接收时,获取的参数值中 + 号全部变成空格了 (#I5EG9L: 传的参数带有 + 号,但是服务接收时,获取的参数值中 + 号全部变成空格了)

其它改动

add: OkHttp3Cookie
add: HttpclientCookie
update: 更新 jackson 版本到 2.13.3
update: 更新 jackson-databind 版本到 2.13.3
update: 更新 jackson-annotations 版本到 2.13.3
update: 更新 gson 版本到 2.8.9
update: 更新 fastjson 版本到 1.2.83

原文来自:https://www.oschina.net/news/203370

本文地址:https://www.linuxprobe.com/forest-release.html编辑:王婷,审核员:清蒸github

Linux命令大全:https://www.linuxcool.com/

Linux系统大全:https://www.linuxdown.com/

红帽认证RHCE考试心得:https://www.rhce.net/