- 注入bean
@Bean
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate();
HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
httpRequestFactory.setConnectionRequestTimeout(30 * 1000);
httpRequestFactory.setConnectTimeout(30 * 3000);
httpRequestFactory.setReadTimeout(30 * 3000);
//修改字符集,防止中文乱码
List<HttpMessageConverter<?>> list = restTemplate.getMessageConverters();
for (HttpMessageConverter<?> httpMessageConverter : list) {
if (httpMessageConverter instanceof StringHttpMessageConverter){
((StringHttpMessageConverter)
httpMessageConverter).setDefaultCharset(Charset.forName("utf-8"));
break;
}
}
restTemplate.setRequestFactory(httpRequestFactory);
return restTemplate;
}
- 调用方法
// 在需要的controller中注入
@Autowired
RestTemplate restTemplate;
get请求
// 以下方法有很多重载,不一一列举
getForEntity 返回的值为响应的所有内容,包括状态码及请求头等
getForObject 返回的值为请求响应的data数据,只关注返回数据,建议使用此方法
post请求
// 以下方法有很多重载,不一一列举
getForEntity 返回的值为响应的所有内容,包括状态码及请求头等
getForObject 返回的值为请求响应的data数据,只关注返回数据,建议使用此方法
以上两种方法已经够用了