Forest声明式HTTP客户端框架漫谈

这篇具有很好参考价值的文章主要介绍了Forest声明式HTTP客户端框架漫谈。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Forest 是一款声明式的 Java 开源 HTTP 框架,相比它的前辈 Httpclient 和 OkHttp 更简明易懂、也更容易维护,使用过程中非常丝滑故想分享给更多的朋友,此处我们进行简单的介绍和使用说明。

一. 什么是Forest

Forest为声明式HTTP客户端框架。将繁复的 HTTP 请求细节封装成 Java 接口 + 注解的形式,不必关心请求发送的具体过程。

普通HTTP请求,例使用hutool的HttpUtil:

import cn.hutool.http.HttpUtil;

String resule = HttpUtil.get("http://ditu.amap.com/service/regeo?longitude={lng}&latitude={lat}");

Forest示例:

public interface MyClient {
    @Get("http://localhost:8080/hello")
    String helloForest();
}


@Autowired
private MyClient client;

public void execute(){
    client.helloForest();
}

二. 使用Forest

  1. 引入依赖(maven)

    <dependency>
        <groupId>com.dtflys.forest</groupId>
        <artifactId>forest-spring-boot-starter</artifactId>
        <version>1.5.31</version>
    </dependency>
    
  2. Forest配置

    Forest是基于约定大于配置的理念进行设计的,如果已经添加好了forest-spring-boot-starter依赖,基本上可以什么都不配置。但是也可以做一些简单的配置,具体可以参考Springboot环境配置项:

    forest:
      max-connections: 1000        # 连接池最大连接数
      connect-timeout: 3000        # 连接超时时间,单位为毫秒
      read-timeout: 3000           # 数据读取超时时间,单位为毫秒
    
  3. 定义接口

    public interface MyClient {
    
        /**
         * 测试forest的get请求
         * @param param1 参数1
         * @param param2 参数2
         * @return
         */
        @Get("http://localhost:8080/testGetForest?param1={param1}&param2={param2}")
        JSONObject getData(String param1, String param2);
    
        /**
         * 测试forest的post请求
         * @param data body传参
         * @return
         */
        @Post("http://localhost:8080/testPostForest")
        JSONObject postData(@JSONBody JSONObject data);
    }
    
  4. 实际调用

    @Service
    public class MyService{
        
        @Autowired
        private MyClient client;
        
        public void run(){
            client.getData("param1", "param2");
            client.postData(new JSONObject());
        }
    }
    

三. 总结

使用Forest极大的提高了便利性,也能够使得代码更容易维护。如果我们使用了IDEA,那么还可以搭配官方插件ForextX进行使用。

参考资料:文章来源地址https://www.toymoban.com/news/detail-493103.html

  • Forest官网
  • ForestX 是一款专为 Forest 提供支持的 IDEA 插件

到了这里,关于Forest声明式HTTP客户端框架漫谈的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mojo:为Web应用程序提供了完整的框架,包括路由、模板、插件、Websocket、HTTP客户端、HTTP服务器、配置文件管理等功能

            Mojo是一种高级的、动态的Perl Web应用程序框架,它可以用来开发Web应用程序,定位于速度、简单和可扩展性。Mojo的设计理念是简洁、灵活、易用和高效,它为Web应用程序提供了完整的框架,包括路由、模板、插件、Websocket、HTTP客户端、HTTP服务器、配置文件管理等

    2024年02月09日
    浏览(73)
  • http客户端Fegin

    代码可读性差,编程体验不统一 参数复杂URL难以维护 Feign是声明式的http客户端(只需要将发http请求的信息写出即可)  主要基于SpringMvc的注解来声明远程调用的信息:  步骤: 1.引入依赖 2.添加EnableFeignClients注解 3.编写FeignClient接口 4.使用FeigClient中定义的方法代替RestTempl

    2024年02月09日
    浏览(41)
  • 云备份客户端——客户端整体设计框架以及实用类工具实现

    客户端要实现的功能和服务端相比相对简单,客户端要实现的功能是 自动对指定文件中的文件进行备份,也就是定时对指定文件进行扫描,根据文件信息判断文件,符合要求(新文件或者被修改过的文件)进行上传 因此我们客户端大概需要实现下面三个模块 数据管理模块:

    2024年02月09日
    浏览(55)
  • 微服务——http客户端Feign

    目录 Restemplate方式调用存在的问题 Feign的介绍 基于Feign远程调用 Feign自定义配置 修改日志方式一(基于配置文件) 修改日志方式二(基于java代码) Feign的性能优化 连接池使用方法  Feign_最佳实践分析   方式一: 方式二  实现Feign最佳实践(方式二)  两种解决方案 就像早期的事务

    2024年02月15日
    浏览(52)
  • 【WebClient】客户端HTTP 超时配置

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 1、项目升级到Springboot3,使用WebFlux自带的WebClient作为HTTP客户端 2、接口类客户端方式调用外部服务,默认超时5S 3、需根据业务动态修改超时时间,如60S 报错如下: java.lang.IllegalStateException: Timeout on bl

    2024年02月12日
    浏览(42)
  • unity客户端开源框架

    链接:https://github.com/yomunsam/TinaX/tree/master TinaX 主要实现了以下功能: Lua 语言支持 出于普遍的热更新需求,TinaX原生提供了基于 Tencent/xlua 的Lua语言运行环境,并为主要功能提供了Lua层面的API支持。 如果不需要Lua环境的话,也可以在项目中将Lua相关功能完全关闭,不会影响包

    2024年01月16日
    浏览(75)
  • Http客户端OkHttp的基本使用

    OkHttp是一个强大的开源HTTP客户端,它被广泛用于Android和Java应用程序中。OkHttp具有简单易用的API,提供了许多高级功能,如连接池、请求压缩和缓存等。 要使用OkHttp,需要在项目的构建文件中添加以下依赖: 请将 x.x.x 替换为您希望使用的OkHttp版本号。 GET请求 以下是发送G

    2024年02月09日
    浏览(58)
  • 【libevent】http客户端3:简单封装

    LibEventHttp

    2024年02月15日
    浏览(52)
  • 【六、http】go的http的客户端重定向

    重定向过程 :客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器–》客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址----》服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任

    2024年02月05日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包