微服务学习:RestTemplate&WebClient发起的http请求实现远程调用

http请求做远程调用是与语言无关的调用,只要知道对方的ip,端口,接口路径,请求参数即可

启动类中配置:

java 复制代码
@Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

Sevice中书写方法

get

java 复制代码
 @Autowired
    private RestTemplate restTemplate;

    public Order queryOrderById(Long orderId) {
        // 1.查询订单
        Order order = orderMapper.findById(orderId);
        //2.查询到了用户id
        Long userId = order.getUserId();
        //发起一个请求访问http://localhost:8081/user/5
        String url ="http://localhost:8081/user/"+userId;
        User user = restTemplate.getForObject(url, User.class);
        //封装
        order.setUser(user);
        // 4.返回
        return order;
    }

建议

从Spring 5开始,官方推荐使用WebClient代替RestTemplate作为进行HTTP请求的工具。WebClient是一个非阻塞、响应式的HTTP客户端,更适合于构建高性能、异步的应用程序。因此,在新的Spring项目中,建议使用WebClient替代RestTemplate

使用WebClient发送GET请求的示例:

java 复制代码
WebClient webClient = WebClient.create();
String url = "https://api.example.com/users";
String responseBody = webClient.get()
        .uri(url)
        .retrieve()
        .bodyToMono(String.class)
        .block();

使用WebClient发送GET请求到指定的URL,并通过bodyToMono方法将响应体转换为字符串类型。最后,通过调用block方法阻塞获取响应体的内容。

相关推荐
前路不黑暗@6 分钟前
Java项目:Java脚手架项目的意义和环境搭建(一)
java·开发语言·spring boot·学习·spring cloud·maven·idea
im_AMBER14 分钟前
Leetcode 120 求根节点到叶节点数字之和 | 完全二叉树的节点个数
数据结构·学习·算法·leetcode·二叉树·深度优先
仙俊红17 分钟前
我亲手抓到了自己的账号密码:一次完整的 HTTP 登录抓包实验
网络·网络协议·http
阿i索24 分钟前
流对象输入输出(cin/cout)
c++·笔记·学习
专业开发者36 分钟前
Wi-Fi 技术学习:一文读懂WPA2四次握手的密钥体系与交互逻辑
网络·学习·macos
无级程序员39 分钟前
k8s 1.35 + containerd v2.2 配置http私库并配置登录信息
http·容器·kubernetes
好好学习天天向上~~1 小时前
9_Linux学习总结_进程状态_僵尸进程_孤儿进程
linux·运维·学习
沄媪1 小时前
HTTP详细知识点
网络·网络协议·http
亓才孓2 小时前
[Spring错误]HTTP常见错误及解决方法
网络·网络协议·http
Quintus五等升2 小时前
深度学习自用笔记
人工智能·笔记·深度学习·学习·机器学习·bert·numpy