在一个 Web 相关的 Java 项目里,发起 HTTP 请求是再常见不过的代码逻辑了,这往往也是 Java 教程里必学的例子。
一个简单的请求,往往使用 HttpClient,或使用 OkHttp 就能很好地完成任务了。但一旦类似的逻辑多了起来,一些重复的代码和配置就显得臃肿起来。这时,不妨尝试一下 Forest,一个声明式 HTTP 客户端框架。
简介
Forest,是 dromara 在Gitee上开源的Java声明式 HTTP 客户端框架,仓库位于https://gitee.com/dromara/forest,目前版本为 v1.5.19。
Forest 作为一个声明式HTTP客户端API框架,让Java发送HTTP/HTTPS请求不再难。它比OkHttp和HttpClient更高层,是封装调用第三方restful api client接口的好帮手,是retrofit和feign之外另一个选择。
使用
Forest功能丰富,
以Httpclient和OkHttp为后端框架通过调用本地方法的方式去发送Http请求, 实现了业务逻辑与Http协议之间的解耦因为针对第三方接口,所以不需要依赖Spring Cloud和任何注册中心支持所有请求方法:GET, HEAD, OPTIONS, TRACE, POST, DELETE, PUT, PATCH支持文件上传和下载支持灵活的模板表达式支持拦截器处理请求的各个生命周期支持自定义注解支持OAuth2验证支持过滤器来过滤传入的数据基于注解、配置化的方式定义Http请求支持Spring和Springboot集成JSON格式数据序列化和反序列化XML格式数据序列化和反序列化Protobuf格式数据序列化和反序列化JSON、XML或其他类型转换器可以随意扩展和替换支持JSON转换框架: Fastjson, Jackson, Gson支持JAXB形式的XML转换可以通过OnSuccess和OnError接口参数实现请求结果的回调配置简单,一般只需要@Request一个注解就能完成绝大多数请求的定义支持异步请求调用
Forest使用简单,以 Spring Boot 为例,首先,添加Maven依赖: