Forest v1.5.30 发布,适配 SpringBoot3 和 Solon,新增延迟参数
Forest介绍
Forest 是一个开源的 Java HTTP 客户端框架,它能够将 HTTP 的所有请求信息(包括 URL、Header 以及 Body 等信息)绑定到您自定义的 Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP 请求
获得奖项
2021 年度 OSC 中国开源项目评选「最受欢迎项目」
2022 年度 OSC 中国开源项目评选「最火热中国开源项目社区」
简单的栗子
声明式接口
创建一个 interface,并用@Get
注解修饰接口方法。
public interface MyClient { @Get("http://localhost:8080/hello") String hello(); }
通过@Get
注解,将上面的 MyClient 接口中的simpleRequest()
方法绑定了一个 HTTP 请求, 其 URL 为http://localhost:8080/hello
,并默认使用 GET 方式,且将请求响应的数据以 String 的方式返回给调用者
编程式接口
Forest.get("http://localhost:8080/hello").execute();
编程式接口则更为简单直接
新增特性
支持和适配了 SpringBoot3
支持和适配了 Solon 框架
支持延迟参数特性
延迟参数 (Lambda参数)
有很多情况,Header、Query、Body的参数值不能马上得出,而是在请求发送前的那一刻(所有请求参数都到位时)才能得出,典型的例子就是加签验证的场景(在Header中添加一个参数token,而token的值是对整个body做加密的结果)
请求头的延迟参数
Forest.post("/test") .addHeader("Content-Type", "application/json; charset=UTF-8") // 普通请求头 .addHeader("Authorization", req -> Base64.encode(req.body().encode())) // 延迟请求头 .addBody("id", "1972664191") // 请求体参数 id .addBody("name", "XieYu20011008") // 请求体参数 name .execute();
请求体的延迟参数
Forest.post("/test") .addHeader("Content-Type", "application/json; charset=UTF-8") // 请求头 .addHeader("_id", "20011008") // 请求头 .addBody("id", "1972664191") // 请求体参数 id .addBody("name", req -> "Foo" + req.headerValue("_id")) // 延迟请求体参数 name .addBody("token", req -> Base64.encode(req.body().encode())) // 延迟请求体参数 token .execute(); // 执行请求
官网和仓库地址
官网地址:
http://forest.dtflyx.com
Gitee 仓库地址:
https://gitee.com/dromara/forest
Github 仓库地址:
https://github.com/dromara/forest
本次更新内容
feat: 适配 springboot3
feat: 适配 solon
feat: 延迟参数 (Lambda参数),支持 Query, Header,Body 三种参数的延迟求值
feat: 可自定义异步请求池拒绝策略
feat: 请求体序列化接口,ForestRequest.body().encode() 和 ForestRequest.body().encodeToString()
fix: ForestProxy添加header没有效果
fix: onBodyEncode 生命周期顺序问题
fix: 不同 ForestConfiguration 对象共用同一个异步线程池的问题
fix: 无法解析 localhost:8080 这类省略 http:// 的 url
reflector: 将xml解析模块拆分成了 forest-jaxb 和 forest-jakarta-xml 两个子模块,需要的情况要分别自行引入
reflector: request body encoder
refactor: Forest Body clone
refactor: 构建 Query String 部分
add: HTTPRoxy 注解的 headers 属性
add: forest 示例工程

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Mybatis-Flex 1.0.3 发布,一个优雅的 Mybatis 增强框架
Mybatis-Flex: 更灵活、更轻量、更好用 特征 1、很轻量,整个框架只依赖 Mybatis 再无其他第三方依赖 2、只增强,支持 Entity 的增删改查、及分页查询,但不丢失 Mybatis 原有功能 3、内置 Db + Row 工具,可以无需实体类对数据库进行增删改查 4、支持多种数据库类型,还可以通过方言持续扩展 5、支持多(联合)主键,以及不同的主键内容生成策略 6、支持逻辑删除设置、更新或插入的默认值配置以及大字段等设置 7、支持乐观锁字段配置,在数据更新时自动进行乐观锁检测 8、极其友好的 SQL 联动查询,IDE 自动提示不再担心出错 9、更多小惊喜 开始 Maven 依赖 示例 1:Mybatis-Flex 原生(非 Spring) 示例 2:Mybatis-Flex with Spring 示例 3:Mybatis-Flex with Spring boot 示例 4:Db + Row hello world(原生) 第 1 步:编写 Entity 实体类 @Table("tb_account") public class Account { ...
- 下一篇
什么?抽屉用腻了?Snowy V2.2.3 已发布 表单风格更随意
Snowy(SnowyAdmin)是国内首个国密前后端分离快速开发平台,集成国密加解密插件, 软件层面符合等保测评要求,同时实现国产化机型、中间件、数据库适配。 此次更新主要体现在整体前端表单风格,增加了统一的组件,使得使用时根据喜好配置使用抽屉或对话框,其次修复了Spring漏洞,其次锁定前端依赖版本,更新如下: 设置抽屉: 表单体现: 详细更新: 1、【更新】新增XnFormContainer组件2、【更新】调整多页签交互,增加右键操作3、【更新】修复一个前端模块坞闪烁问题,优化css样式4、【升级】前端整体升级所有抽屉采用统一组件,可根据喜好情况在抽屉跟对话框随意切换5、【修复】修复登录界面验证码输入错误后不重置以及配置完成不立马生效问题6、【更新】锁定前端依赖版本,避免某依赖升级摧毁原有可用性7、【更新】升级SpringFrameWork至5.3.26,紧急修复漏洞 源码地址: Snowy单体前后分离版 https://gitee.com/xiaonuobase/snowy Snowy-Cloud微服务前后分离版 https://gitee.com/xiaonuobase/sn...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果