概述:
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()+"購票成功!";