• Forest v1.5.13 发布,声明式 HTTP 框架,已超 1.7k star


    Forest介绍

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

    现已超过 1700 star

    Gitee上的Star趋势图

    Forest 如何使用

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

    Forest 的工作原理

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

    官网和仓库地址

    官网地址:

    http://forest.dtflyx.com

    Gitee 仓库地址:

    https://gitee.com/dromara/forest

    Github 仓库地址:

    https://github.com/dromara/forest

    重点更新内容

    新增用于指定请求体类型的注解@BodyType,可用于发送请求体格式与Content-Type头相异的数据

    /**
     * 此请求Content-Type头为 x-www-form-urlencoded
     * 而请求体的格式却可以是JSON格式
     */
    @BodyType("json")
    @Post(url = "/", contentType = ContentType.APPLICATION_X_WWW_FORM_URLENCODED)
    String send(@Body("name") String name, @Body("value") Object value);
    @BodyType注解同时可以指定Encoder
    /**
     * 指定请求体格式为json的同时,指定Encoder为Jackson转换器
     */
    @BodyType(type = "json", encoder = ForestJacksonConverter.class)
    @Post(url = "/", contentType = ContentType.APPLICATION_X_WWW_FORM_URLENCODED)
    String send(@Body Entry entry);
    如果要指定特定JSON转换器为某一请求的Encoder,可以使用对应JSON框架的快捷注解
    /**
     * 指定Fastjson为Encoder
     */
    @FastjsonEncoder
    @Post("/")
    String sendFastjson(@Body Entry entry);
    /**
     * 指定Jackson为Encoder
     */
    @JacksonEncoder
    @Post("/")
    String sendJackson(@Body Entry entry);
    /**
     * 指定Gson为Encoder
     */
    @GsonEncoder
    @Post("/")
    String sendGson(@Body Entry entry);
    本次更新内容

    新增特性

    • feat: 指定请求体类型的@BodyType注解 (#I4IF3N)
    • feat: 新增获取全部请求体中键值对参数的方法 (#I4GWO7)

    修复的BUG

    • fix: 在请求中设置自定义Encoder无效 (#I4HNZF)
    • fix: url解析问题,如果包含@符@会去掉 (#I4GQWW)

    其它改动

    • add: BodyType注解
    • add: FastjsonEncoder注解
    • add: GsonEncoder注解
    • add: JacksonEncoder注解

    不兼容改动

    • delete: com.dtflys.forest.http.ForestBodyType类
    • update: ForestRequest类的setBodyType方法和bodyType方法的参数类型改为ForestDataType

  • 相关阅读:
    Appium环境搭建及“fn must be a function”问题解决
    jmeter XML格式的结果中各属性的含义
    初识java,编写hello world语句
    【J-meter】参数及相应数据中文显示乱码问题
    【APP测试】APP弱网环境测试
    【Fiddler】改写返回数据功能
    【WebGoat习题解析】Parameter Tampering->Bypass HTML Field Restrictions
    【WebGoat习题解析】AJAX Security->Insecure Client Storage
    【burp】配置HTTPS抓包方法
    【APP自动化测试】Monkey的测试原理和方法
  • 原文地址:https://www.cnblogs.com/dtflyx/p/15561412.html
Copyright © 2020-2023  润新知