RestTemplate
是Spring提供的用于访问Rest服务的客户端,可进行Http请求,可发送get请求,post请求,put请求,delete请求,表单提交,通用方法exchange
方法中的参数主要有:
- 请求地址,
- 请求参数,可以包含请求头
- 返回值类型.
GET请求
-
getForEntity
可获取响应头.相应状态码
请求参数
-
getForObject
无法获取响应头,相应状态码.
POST请求
-
postForEntity
-
postForObject
-
postForLocation
设置请求头
//将请求头和请求体放在HttpEntity
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
for (String key : headerMaps.keySet()) {
headers.add(key, headerMaps.get(key));
}
HttpEntity<String> formEntity = new HttpEntity<>(requestParam, headers);
T result = restTemplate.postForObject(requestUrl, formEntity, responseType);
RestTemplate和HttpClient对比:
1、HttpClient:代码复杂,还得操心资源回收等。代码很复杂,冗余代码多,不建议直接使用。
2、RestTemplate: 是 Spring 提供的用于访问Rest服务的客户端, RestTemplate 提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。
高并发下的resttemplate
https://blog.csdn.net/qq_29738509/article/details/89962112
参考博文:
https://blog.csdn.net/jinjiniao1/article/details/100849237 设置请求头是通过resttemplate的setInterceptors 拦截器设置的.