远程调用--Http Interface

远程调用--Http Interface

前言

这个功能是spring boot6提供的新功能,spring允许我们通过自定义接口的方式,给任意位置发送http请求,实现远程调用,可以用来简化http远程访问,需要webflux场景才可以

1、导入依赖

2、定义接口

java 复制代码
package com.atguigu.boot305ssm.service;

import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.service.annotation.GetExchange;

/**
 * @author jitwxs
 * @date 2024年03月03日 20:39
 */
public interface WeatherInterface {

    @GetExchange(url="/接口的后半截数据",accept = "application/json")
    String getWeather(@RequestParam("area") String city,
                      @RequestHeader("Authorization") String auth);
}

3 创建代理&测试

java 复制代码
    public Mono<Mono<String>> weather(String city){
//        创建客户端
        WebClient client = WebClient.builder()
                .baseUrl("要请求的接口")
                .codecs(clientCodecConfigurer -> {
                    clientCodecConfigurer
                            .defaultCodecs()
                            .maxInMemorySize(256*1024*1024);
//                    响应数据两太大有可能会超过bufferSize,所以这里设置的大一些
                })
                .build();
//        创建工厂
        HttpServiceProxyFactory factory = HttpServiceProxyFactory
                .builder(WebClientAdapter.forClient(client)).build();

//        获取代理对象
        WeatherInterface weatherAPI = factory.createClient(WeatherInterface.class);

        Mono<String> weather = weatherAPI.getWeather("西安","APPCODE 93b7e19861a24c519a7548b17dc46d75");

        return Mono.just(weather);
    }

4、创建成配置变量


相关推荐
Arenaschi31 分钟前
AI对未来游戏模式与游戏开发的助力
网络·人工智能·游戏·ai
国际云,接待34 分钟前
出海东南亚无忧:腾讯云如何凭借本地合作与全球节点,保障游戏和电商业务合规流畅?
大数据·服务器·网络·云计算·腾讯云
2501_9159184140 分钟前
Fiddler抓包工具详解,HTTP/HTTPS抓包、代理设置与调试技巧一站式教程(含实战案例)
http·ios·小程序·https·fiddler·uni-app·webview
2501_929907002 小时前
怕随身 WiFi 虚量断连?格行随身wifi拆箱测评:1500G 真不虚标?
网络
极客范儿2 小时前
华为HCIP网络工程师认证—网络参考模型
网络·华为
null_null9992 小时前
宝塔nginx http转https代理
nginx·http·https
南♡黎(・ิϖ・ิ)っ2 小时前
JavaEE初阶,网络原理HTTP报头篇
网络·https·java-ee
冰糖拌面2 小时前
GO写的http服务,清空cookie
服务器·http·golang
爱编程的鱼2 小时前
HTTP 是什么?它是如何工作的
网络·网络协议·http
小武~3 小时前
嵌入式Linux安全启动全解析:从原理到实战
linux·网络·安全