你还在使用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。

中文文档地址

猜你喜欢

转载自blog.csdn.net/luomo0203/article/details/114691908