轻量级HTTP客户端Forest v1.5.16发布 - Gitee News - OSCHINA - 中文开源技术交流社区
最编程
2024-04-12 15:40:50
...
Forest v1.5.16 已经发布,轻量级 HTTP 客户端
此版本更新内容包括:
1.5.15
版本发布了,本次添加了自定义SSL主机名验证器,以及修复了Response
字符编码和gzip
解压等问题
Forest已参加2021年度OSC中国开源项目评选活动,如果您喜欢Forest或对Forest感兴趣,请投上您宝贵的一票,感谢! 点击投票 投票
重点更新内容
自定义hostnameVerifier
定义一个实现 HostnameVerifier 接口的类
/**
* 自定义SSL主机名/域名验证器
*/
public class MyHostnameVerifier implements HostnameVerifier {
@Override
public boolean verify(String s, SSLSession sslSession) {
if ("gitee.com".equals(s)) {
return true;
}
return false;
}
}
将自定义的SSL主机名验证器配置到 Forest 的KeyStore
中
在Springboot项目的application.yml
文件中配置
forest:
ssl-key-stores:
- id: keystore1
hostname-verifier: your.site.MyHostnameVerifier
在接口中绑定
@Post(url = "/something", keyStore = "keystore1")
String postSomething(@Body body);
@SSLHostnameVerifier
注解
除了在全局配置文件中的keyStore
中配置外, 也可以通过相关注解直接在接口上绑定
public class MyHostnameVerifier implements HostnameVerifier {
@Override
public boolean verify(String hostname, SSLSession session) {
// 只通过域名为 gitee.com 的请求
if ("gitee.com".equals(hostname)) {
return true;
}
return false;
}
}
通过@SSLHostnameVerifier
注解绑定到接口
@Post(url = "/something")
@SSLHostnameVerifier(TrustAnyHostnameVerifier.class)
String postSomething(@Body body);
@SSLSocketFactoryBuilder
注解
同理 SSLSocketFactory 也一样可以自定义,同时由@SSLSocketFactoryBuilder
注解来绑定
public class MySSLSocketFactoryBuilder implements SSLSocketFactoryBuilder {
@Override
public SSLSocketFactory getSSLSocketFactory(ForestRequest request, String protocol) throws Exception {
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null,
new TrustManager[] { new TrustAllManager() },
new SecureRandom());
System.out.println("do MySSLSocketFactoryBuilder");
return sslContext.getSocketFactory();
}
}
绑定到接口
@Post(url = "/something")
@SSLSocketFactoryBuilder(MySSLSocketFactoryBuilder.class)
String postSomething(@Body body);
更新日志
新增特性
- feat: 自定义 hostnameVerifier 和 SSLSocketFactoryBuilder (#I4LGW8)
- feat: 根据Response的Content-Encoding自动识别是否为gzip压缩数据,并自动解压
修复问题
- fix: 重定向后URL的Query参数会重复增加 (#I4LPGU)
- fix: 修复content-encoding导致的字符编码转换异常 (#I4LJ3X)
- fix: 修复字符编码判断的BUG
代码更新
- add: @SSLHostnameVerifier 注解
- add: @SSLSocketFactoryBuilder 注解
鸣谢
本次更新有 @AlexShi 小伙伴参与贡献,万分感谢!
2021年度OSC中国开源项目评选
Forest已参加2021年度OSC中国开源项目评选活动,如果您喜欢Forest或对Forest感兴趣,请投上您宝贵的一票,感谢!
点击投票 投票
详情查看:https://gitee.com/dromara/forest/releases/v1.5.16
上一篇: 随机森林的 Python 实现原理和方法 随机森林
下一篇: 森林详细介绍-森林介绍
推荐阅读
-
yudao-ui-admin-vue3 v1.8.0 已发布 - Gitee News - OSCHINA - 中文开源技术交流社区
-
ClearItem v1.3.2 已发布 - Gitee News - OSCHINA - 中文开源技术交流社区
-
ofdrw 2.0.1 正式发布 - Gitee News - OSCHINA - 中文开源技术交流社区
-
调试模块 m29.0 已发布 - Gitee News - OSCHINA - 中文开源技术交流社区
-
调试模块 m19.2 已发布 - Gitee News - OSCHINA - 中文开源技术交流社区
-
LrcMusicPlayer v1.5.0 正式发布 - Gitee News - OSCHINA - 中文开源技术交流社区
-
轻量级HTTP客户端Forest v1.5.16发布 - Gitee News - OSCHINA - 中文开源技术交流社区
-
轻量级HTTP客户端Forest v1.5.33发布 - Gitee News - OSCHINA - 中文开源技术交流社区
-
轻量级 HTTP 客户端 Forest v1.5.35 已发布 - Gitee Express - OSCHINA - 中文开源技术交流社区
-
Ant-Forest v1.3.8.2 正式发布 - Gitee News - OSCHINA - 中文开源技术交流社区