RestTemplate中execute的使用
时间: 2024-03-20 19:34:43 浏览: 25
RestTemplate中的execute方法可以发送任意类型的HTTP请求,并返回一个响应。该方法需要传入一个RequestCallback对象和一个ResponseExtractor对象。RequestCallback对象用于设置请求头、请求体等信息,ResponseExtractor对象用于提取响应体中的数据。下面是一个使用execute方法发送GET请求的例子:
```
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer my-token");
HttpEntity<String> entity = new HttpEntity<>(headers);
ResponseEntity<String> response = restTemplate.execute("https://example.com/api", HttpMethod.GET, null,
clientHttpResponse -> {
InputStream body = clientHttpResponse.getBody();
String result = new BufferedReader(new InputStreamReader(body))
.lines().collect(Collectors.joining("\n"));
return result;
});
String responseBody = response.getBody();
```
在这个例子中,我们首先创建了一个RestTemplate对象,然后设置了请求头信息。接着,我们创建了一个HttpEntity对象,将请求头信息放入其中。然后,我们调用RestTemplate的execute方法,传入请求URL、请求方法、请求实体和ResponseExtractor对象。在ResponseExtractor对象中,我们将响应体中的数据提取出来,并返回一个字符串。最后,我们获取了响应实体中的数据,并将其打印出来。