RestTemplate远程调用方法
概述:
spring框架提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接, 我们只需要传入url及返回值类型即可。相较于之前常用的HttpClient,RestTemplate是一种更优雅的调用RESTful服务的方式。
使用
首先是把RestTemplate实例化
/*
* 实例化restTemplate
* */
@Bean
public RestTemplate restTemplate(){
RestTemplate restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> list = restTemplate.getMessageConverters();
for (HttpMessageConverter<?> httpMessageConverter : list) {
if(httpMessageConverter instanceof StringHttpMessageConverter) {
((StringHttpMessageConverter) httpMessageConverter).setDefaultCharset(Charset.forName("UTF-8"));
break;
}
}
return restTemplate;
}
我们已经在另外的一个url:http://cloud:9001/user/{id}的对应的Controller层的方法
创建TestController建一个单元测试方法
使用restTemplate远程调用你设置的http://cloud:9001/user/{id}方法
获取到用户
/**
* 参数一:调用url地址
* 参数二:需要封装的对象类型
*/
User user = restTemplate.getForObject("http://cloud:9001/user/"+id, User.class);
System.out.println(user.getUsername()+"正在购票");
return user.getUsername()+"购票成功!";