内容简介:Forest介绍 Forest 是一个开源的 Java HTTP 客户端框架,它能够将 HTTP 的所有请求信息(包括 URL、Header 以及 Body 等信息)绑定到您自定义的 Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP 请求...
Forest介绍
Forest 是一个开源的 Java HTTP 客户端框架,它能够将 HTTP 的所有请求信息(包括 URL、Header 以及 Body 等信息)绑定到您自定义的 Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP 请求
现已 2.1k star
Forest 如何使用
Forest 不需要您编写具体的 HTTP 调用过程,只需要您定义一个接口,然后通过 Forest 注解将 HTTP 请求的信息添加到接口的方法上即可。请求发送方通过调用您定义的接口便能自动发送请求和接受请求的响应
Forest 的工作原理
Forest 会将您定义好的接口通过动态代理的方式生成一个具体的实现类,然后组织、验证 HTTP 请求信息,绑定动态数据,转换数据形式,SSL 验证签名,调用后端 HTTP API(httpclient 等 API)执行实际请求,等待响应,失败重试,转换响应数据到 Java 类型等脏活累活都由这动态代理的实现类给包了。 请求发送方调用这个接口时,实际上就是在调用这个干脏活累活的实现类
文档和示例
重点更新内容
动态正向代理来源
定义一个实现 HTTPProxySource 接口的类
// 自定义正向代理来源类
// 可以根据请求对象的信息来动态产生该请求所需的正向代理信息
public class MyHTTPProxySource implements HTTPProxySource {
@Override
public ForestProxy getProxy(ForestRequest request) {
// request.variableValue 方法可以获取全局或请求变量
// 返回值将以 ForestProxy 类对象形式包装正向代理信息
return new ForestProxy("127.0.0.1", (Integer) request.variableValue("port"));
}
}
在接口中绑定
// 通过 HTTPProxy 注解的 source 属性指定自定义的正向代理来源类
@Post("/data")
@HTTPProxy(source = MyHTTPProxySource.class)
ForestRequest<String> sendData(@Var("port") int port);
本次更新
新增特性
- feat: 动态正向代理来源信息 (#I4SYM1:动态正向代理来源信息)
修复问题
fix: 异常:The file of SSL KeyStore is empty (#I4SYGB:异常:The file of SSL KeyStore is empty)
fix: maxRetryInterval配置失效 (#I4SV2P:maxRetryInterval配置失效)
fix: 主项目没有依赖lang3会报错的问题 (#I4M9DE:主项目没有依赖lang3会报错的问题)
fix: 组合注解未生效 (#I4N2HC:组合注解未生效)
其它更新
- refactor: 去掉 NameUtils 工具类中重复的if分支
特别鸣谢
本次更新有 @chming 参与贡献,万分感谢!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 声明式 API 编程框架 Mars-java 发布 3.0.9
- Smart Retry 1.3.4 发布,声明式的异步持久化重试框架
- Smart Retry 1.3.5 发布,声明式的异步持久化重试框架
- Smart Retry 1.3.7 发布,声明式的异步持久化重试框架
- Mars-java 3.0.0 发布,面向声明式 API 编程(DAP)的框架
- 面向声明式 API 编程(DAP)的框架,Mars-java 3.0.2 发布
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python源码剖析
陈儒 / 电子工业出版社 / 2008-6 / 69.80元
作为主流的动态语言,Python不仅简单易学、移植性好,而且拥有强大丰富的库的支持。此外,Python强大的可扩展性,让开发人员既可以非常容易地利用C/C++编写Python的扩展模块,还能将Python嵌入到C/C++程序中,为自己的系统添加动态扩展和动态编程的能力。. 为了更好地利用Python语言,无论是使用Python语言本身,还是将Python与C/C++交互使用,深刻理解Pyth......一起来看看 《Python源码剖析》 这本书的介绍吧!