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

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

启动类中配置:

@Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

Sevice中书写方法

get

 @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请求的示例:

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方法阻塞获取响应体的内容。

最近更新

  1. TCP协议是安全的吗?

    2023-12-11 16:32:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-11 16:32:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-11 16:32:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-11 16:32:02       18 阅读

热门阅读

  1. 如何使用rollup打包编译electron主进程代码

    2023-12-11 16:32:02       37 阅读
  2. Leetcode 2959. Number of Possible Sets of Closing Branches

    2023-12-11 16:32:02       42 阅读
  3. AES加密的使用笔记(ECB和GCM加密模式-前端)

    2023-12-11 16:32:02       39 阅读
  4. 《C++新经典设计模式》之第17章 中介者模式

    2023-12-11 16:32:02       24 阅读
  5. H3C网络设备交换机风扇亮黄灯故障处理

    2023-12-11 16:32:02       74 阅读
  6. PTA 7-226 sdut-C语言实验-矩阵输出(数组移位)

    2023-12-11 16:32:02       42 阅读
  7. C项目编译和链接[CL]

    2023-12-11 16:32:02       31 阅读
  8. docker的镜像创建 dockerfile

    2023-12-11 16:32:02       32 阅读
  9. SQL注入一般过程

    2023-12-11 16:32:02       34 阅读
  10. Linux 服务器内开放指定的端口

    2023-12-11 16:32:02       39 阅读
  11. 【React】react-router-dom路由导航的跳转及传参

    2023-12-11 16:32:02       43 阅读
  12. 深度学习为什么要进行训练

    2023-12-11 16:32:02       32 阅读
  13. PHP中对象数组化

    2023-12-11 16:32:02       36 阅读