声明式 HTTP 框架 Forest v1.5.22 发布!支持 Kotlin

Forest 介绍

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

Forest 如何使用

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

Forest 的工作原理

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

获得奖项

2021年度OSC中国开源项目评选「最受欢迎项目」

https://www.oschina.net/project/top_cn_2021

重点更新内容

统一连接池

不用再分别定义 OkHttp 和 Httpclient 的连接池了,也不用担心异步请求和同步请求不在同一个连接池的烦恼了

本次更新统一连接池,可以通过max-connections max-route-connections属性统一管理 OkHttp 和 HttpClient 所有后端的所有请求的最大请求数和最大每路由请求数,同时也包括异步请求在内可以一同进行限制

参数定义返回类型

当接口方法返回的是未知参数的泛型类型时,可以通过新增的@Return参数注解,来标识某个参数为返回类型

    // 通过 Class 类型参数来标识返回类型
    @Get("/user/info")
    <T> T getGenericClass(@Return Class clazz);

    // 通过 Type 类型参数来标识返回类型
    @Get("/user/info")
    <T> T getGenericType(@Return Type type);

    // 通过 TypeReference 类型参数来标识返回类型    @Get("/user/info")
    <T> T getGenericTypeReference(@Return TypeReference typeReference);

文档和示例

本次更新

新增特性:

修复的问题:

猜你喜欢

转载自www.oschina.net/news/198882/forest-1-5-22-released