• forest--声明式HTTP客户端框架-spring-b oot项目整合


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

    官方链接:

    🎁 新手介绍 | Forest

    阿丹:

           在之前的技术栈中没有涉及到这里,但是在近期的项目中涉及到了http请求的调用。于是学习和使用了新的技术栈。

    导入依赖

    1. <dependency>
    2. <groupId>com.dtflys.forest</groupId>
    3. <artifactId>forest-spring-boot-starter</artifactId>
    4. <version>1.5.33</version>
    5. </dependency>

    JOSN框架依赖

    注意:如果项目中已经存在了json的框架使用那么不需要导入这个依赖

    1. <dependency>
    2. <groupId>com.alibaba</groupId>
    3. <artifactId>fastjson</artifactId>
    4. <version>1.2.73</version>
    5. </dependency>

    XML框架依赖

    1. <dependency>
    2. <groupId>com.dtflys.forest</groupId>
    3. <artifactId>forest-jaxb</artifactId>
    4. <version>1.5.33</version>
    5. </dependency>

    spring-boot环境下的简单使用

    在上面的依赖导入好了以后就可以进行去构建http请求的接口调用了。

    在 Forest 中,所有的 HTTP 请求信息都要绑定到某一个接口的方法上,不需要编写具体的代码去发送请求。请求发送方通过调用事先定义好 HTTP 请求信息的接口方法,自动去执行 HTTP 发送请求的过程,其具体发送请求信息就是该方法对应绑定的 HTTP 请求信息

    阿丹:

            该说不说!这个方式是什么优雅简单!!!!

    快速构建一个GET请求

    1、创建一个接口

    操作:

           使用@Get注解,并且在这个注解value值中写入url

    解读一下:

            在前面的String说明了这个接口要返回一段字符串来

    2、使用!!!你没看错就是直接使用!!!

     首先在需要使用的地方使用@Resource直接注入

    然后使用的时候直接进行调用即可!!!

    3、效果演示!

    你别看返回了一个json,但是它其实还是一个字符串,只是使用了测试工具进行了美化。

    这个一定要知道!!!

    进阶使用!!!!

    学习展示一下官方是实例

    如何构建请求?

    构建请求头

    1. public interface MyClient {
    2. @Request(
    3. url = "http://localhost:8080/hello/user",
    4. headers = "Accept: text/plain"
    5. )
    6. String sendRequest(@Query("uname") String username);
    7. }

    上面的sendRequest方法绑定的 HTTP 请求,定义了 URL 信息,以及把Accept:text/plain加到了请求头中, 方法的参数String username绑定了注解@Query("uname"),它的作用是将调用者传入入参 username 时,自动将username的值加入到 HTTP 的请求参数uname中。

    请求方法

    HTTP 请求方法请求注解描述
    GET
    @Get@GetRequest
    获取资源
    POST@Post@PostRequest
    传输实体文本
    PUT@Put@PutRequest
    上传资源
    HEAD@HeadRequest
    获取报文首部
    DELETE@Delete@DeleteRequest
    删除资源
    OPTIONS@Options@OptionsRequest询问支持的方法
    TRACE@Trace@TraceRequest追踪路径
    PATCH@Patch@PatchRequest
    更新资源的某一部分
    不定方法
    @Request
    可动态传入HTTP方法

    其中在这个中使用的传递参数的方法是{value}的方式,同时在下面的形参中使用@Var注解的方式来赋值。

    若不想在接口定义的时候直接定死为某个具体的 HTTP 请求方法,而是想从全局变量或方法参数中动态传入

    可以使用 @Request 请求注解

    1. /**
    2. * 通过在 @Request 注解的 type 属性中定义字符串模板
    3. * 在字符串模板中引用方法的参数
    4. */
    5. @Request(
    6. url = "http://localhost:8080/hello",
    7. type = "{type}"
    8. )
    9. String simpleRequest(@Var("type") String type);

    在调用改方法时通过参数传入 HTTP 请求方法类型(字符串类型,大小写不敏感)

    1. // POST 请求
    2. String result1 = simpleRequest("post");
    3. // DELETE 请求
    4. String result2 = simpleRequest("DELETE");

    更多操作看官网文档很详细

    🍭 请求头 | Forest 

  • 相关阅读:
    Okapi Framework
    CN考研真题知识点二轮归纳(5)
    世上最全NVDIA GPU参数列表: 3090,4090, A40, A30,V100, A100, A800性能参数
    【案例实战】高性能SpringBoot整合短线验证码发送(池化思想+异步结合)
    基于ARM的环境参数检测系统设计(Labview+STM32+ZigBee)
    VMware12下安装Windows7虚拟机---详细多图教程(沙盒环境)
    软考 系统架构设计师 简明教程 | 软件系统建模
    论文浅尝 | GPT-RE:基于大语言模型针对关系抽取的上下文学习
    设计模式-桥接模式
    【无标题】
  • 原文地址:https://blog.csdn.net/weixin_72186894/article/details/132898133