在SpringBoot中使用WebClient调用外部接口的简单示例

1.添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

2.调用API

public class WebClientExample {
	//也可以创建一个配置类来定制WebClient的实例,例如设置基础URL、拦截器等。
    private final WebClient webClient;
    public WebClientExample() {
        this.webClient = WebClient.builder()
                .baseUrl("http://example.com/api")
                .build();
    }
    public String sendData(Map<String, Object> dataMap) {
     	String msg = "";
        Mono<ApiResultDTO> response =  webClient.post()
                .uri("/endpoint") // 替换为实际的端点路径
                .contentType(MediaType.APPLICATION_JSON)
                .bodyValue(dataMap) // 直接将Map作为请求体传递
                .retrieve()
                .bodyToMono(ApiResultDTO.class).timeout(Duration.of(60, ChronoUnit.SECONDS));
                //.toBodilessEntity() // 如果不需要响应体,使用Mono<void>
                //.doOnSuccess(success-> System.out.println("Data sent successfully"))
                //.doOnError(error -> System.err.println("Error sending data: " + error.getMessage())); 
        ApiResultDTO data = response.block();//获取到响应结果
         //success,msg,data 
        if (data.isSuccess()) {
            msg = "成功";
        } else {
            msg = "失败"+data.getMsg();
        }
        return msg;        
    }
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值