微服务学习:RestTemplate&WebClient发起的http请求实现远程调用
2023-12-14 09:58:43
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
方法阻塞获取响应体的内容。
文章来源:https://blog.csdn.net/A2029292473/article/details/134878546
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!