V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DtFlys
V2EX  ›  开源软件

Forest v1.5.12 发布,声明式 HTTP 框架,已超 1.6k star

  •  
  •   DtFlys · 2021-11-04 14:05:15 +08:00 · 790 次点击
    这是一个创建于 876 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Forest 介绍

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

    现已超过 1600 star

    stars

    Forest 如何使用

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

    Forest 的工作原理

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

    文档和示例

    本次更新

    新增特性:

    • feat: getbody 可以有 key-value 形式进行取值 (#I4FUSB:建议改进下 getbody 可以有 key -value 形式进行取值)

    BUG FIX:

    • fix: URL 参数会重复 Encode (#I4FDJC:URL 参数会重复 Encode)
    • fix: {变量名}格式字符串模板在引用隐式变量时出错 (#I4EP04:{变量名}格式字符串模板在引用隐式变量时出错)
    • fix: 对于 http://localhost/xxx:yyy 这种形式的 URL 解析错误 (#I4GC5M:对于 http://localhost/xxx:yyy 这种形式的 URL 解析错误)
    • fix: httpclient 和 okhttp 编码行为不一致 (#I4FRR5:httpclient 和 okhttp 编码行为不一致)
    • fix: post 请求的 url 为空的时候有 bug (#I4F3XS:post 请求的 url 为空的时候有 bug)
    • fix: retrywhen 中的异常被吃掉, 无法抛出. 且异常后仅触发一次重试 (#I4E4X7:retrywhen 中的异常被吃掉, 无法抛出. 且异常后仅触发一次重试)
    • fix: Httpclient 后端在连续异步发送请求后会出现 I/IO 报错 (#I47FD7:Httpclient 后端在连续异步发送请求后会出现 I/IO 报错)

    代码重构:

    • refactor: 重构后端代码: 表单类型 Body 部分
    • refactor: 重构后端: okhttp3
    • refactor: 重构后端: httpclient
    • refactor: 重构后端: 重写异步请求逻辑

    代码优化:

    • optimize: Forest 对于一些错误的响应处理不友好 (#I4EIDJ:Forest 对于一些错误的响应处理不友好)

    其它代码改动:

    • add: ForestBody 类
    • add: Validations 类
    • delete: OkHttp3 不再使用的请求执行器类
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2876 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:26 · PVG 22:26 · LAX 07:26 · JFK 10:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.