RestTemplate有很多种使用方式, 经过一段时间的使用, 发现如下方式比较方便:
//请求的参数实际是写在url上的, 构造URL的时候明确写上
String url = UriComponentsBuilder.fromPath("/hello")
.queryParam("name", "you")
.toUriString();
//请求体可以直接使用对象类型
String body = "content";
//Header
HttpHeaders headers = new HttpHeaders();
//将header和body组装为entity, 这里无需指定Method
//如果body为空, 例如GET, 使用HttpEntity<Void>
HttpEntity<String> entity = new HttpEntity<>(body, headers);
//提交的时候, 可以清楚的看到几个属性: url, method, entity(header, body), response对应的对象(支持泛型)
//所有的Method都可以使用这种格式
ResponseEntity<String> response =
restTemplate.exchange(url,
HttpMethod.GET,
entity,
new ParameterizedTypeReference<String>() {
});
//任何响应状态都可以封装在response里, 不会产生异常
log.info("{}", response);