forest是一款集成了Httpclient
和OkHttp
的轻量级HTTP客户端框架,相比于直接使用Httpclient你不用再写一大堆重复的代码了,而是像调用本地方法一样去发送HTTP请求。具体官方文档可以去:https://dt_flys.gitee.io/forest/#/。forest只需要定义一个接口,然后通过 Forest 注解将 HTTP 请求的信息添加到接口的方法上即可。请求发送方通过调用定义好的接口便能自动发送请求和接受请求的响应,可以定义请求方式,添加认证,请求参数是通过json,还是xml已经其他方法等
官方说明:
图片.png
图片.png
图片.png
简单工程创建
导入maven工程
<dependency>
<groupId>com.dtflys.forest</groupId>
<artifactId>spring-boot-starter-forest</artifactId>
<version>1.3.11</version>
</dependency>
通过注解@Request()内部定义请求路径,请求方式,入参形式等来定义接口方法
@Component
public interface HttpClientUtil {
@Request(url = "http://localhost:1002//es/appApi/findById",
dataType = "json")
Goods getLocation(@DataParam("id")String id);
}
扫描forest调用所在包
@SpringBootApplication
//扫描forest调用所在包
@ForestScan(basePackages = "cn.pdl.pelasticsearch.util")
public class PElasticsearchApplication {
public static void main(String[] args) {
SpringApplication.run(PElasticsearchApplication.class, args);
}
}
方法调用
@RestController
@RequestMapping("/forest/2.0")
@Api(value = "forest学习",tags = {"forest学习"})
@Slf4j
public class ForestController {
@Autowired
private HttpClientUtil httpClientUtil;
@PostMapping("/test")
@ApiOperation(value = "测试")
public Goods test(){
Goods goods = this.httpClientUtil.getLocation("ce5e68b7b2cc4160b43508866601b689");
log.info("{}",goods);
return goods;
}
}
调用结果
图片.png