你还在使用HttpClient封装请求实现第三方接口调用吗?快来试试这款开源Http框架吧

一、Forest介绍

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

二、SpringBoot整合

   <dependency>
            <groupId>com.dtflys.forest</groupId>
            <artifactId>forest-spring-boot-starter</artifactId>
            <version>1.5.0-RC6</version>
        </dependency>
/**
 * forest调用
 */
@Component
public interface MyClient {

    @Request(url = "http://localhost:8080/api/hello")
    String helloForest();


    @Request(
            url = "http://localhost:8080/api/user",
            headers = "Accept: text/html"
    )
    String sendRequest(@Query("uname") String username);
}
@SpringBootApplication
@ForestScan(basePackages = "com.example.demo.rpc")
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}
package com.example.demo.controller;

import com.example.demo.rpc.MyClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("api")
public class HelloController {

    final
    MyClient myClient;

    public HelloController(MyClient myClient) {
        this.myClient = myClient;
    }

    @GetMapping("hello")
    public String hello(){
        return "hello";
    }


    @GetMapping("rest")
    public String forest(){
    return myClient.helloForest();
    }


    @GetMapping("user")
    public String user(String uname){
        return uname;
    }F


    @GetMapping("query")
    public String query(){
        return myClient.sendRequest("<h1>hello</h1>");
    }

}

有点类型springcloud中的Feign。

中文文档地址

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值