Spring Boot接收其他服务的请求-RestTemplate简单使用

当使用RestTemplate时,你可以发送HTTP请求并处理响应。以下是使用RestTemplate的常见用法示例:

发送GET请求并处理响应:

RestTemplate restTemplate = new RestTemplate();
String url = "http://example.com/api/resource";
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
String responseBody = response.getBody();
// 对响应进行处理

在上面的示例中,我们创建了一个RestTemplate实例,并使用getForEntity()方法发送GET请求,并将响应解析为String类型。你可以根据需要更改URL和响应类型。

发送POST请求并处理响应:

RestTemplate restTemplate = new RestTemplate();
String url = "http://example.com/api/resource";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
String requestBody = "{\"key\": \"value\"}";
// requestBody 参数也可以是任意类型(泛型)
// public HttpEntity(@Nullable T body, @Nullable MultiValueMap<String, String> headers)

HttpEntity<String> requestEntity = new HttpEntity<>(requestBody, headers);
ResponseEntity<String> response = restTemplate.postForEntity(url, requestEntity, String.class);
String responseBody = response.getBody();
// 对响应进行处理
// 比如转成map
Map<String, Object> map = JSONObject.parseObject(responseBody.getBody());

在这个示例中,我们使用postForEntity()方法发送POST请求,并在请求体中传递了JSON数据。你可以根据需要设置请求头、请求体和响应类型。

发送PUT请求:

RestTemplate restTemplate = new RestTemplate();
String url = "http://example.com/api/resource";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
String requestBody = "{\"key\": \"value\"}";
HttpEntity<String> requestEntity = new HttpEntity<>(requestBody, headers);
restTemplate.put(url, requestEntity);

在这个示例中,我们使用put()方法发送PUT请求,并在请求体中传递了JSON数据。你可以根据需要设置请求头和请求体。

发送DELETE请求:

RestTemplate restTemplate = new RestTemplate();
String url = "http://example.com/api/resource/{id}";
restTemplate.delete(url, 1);

在这个示例中,我们使用delete()方法发送DELETE请求,并通过占位符设置了URL中的参数。你可以根据需要设置占位符参数。

这只是RestTemplate的基本用法,你还可以使用其他方法,如exchange()、execute()等,来满足不同的需求。另外,还有一种更现代化的方式是使用WebClient来发送HTTP请求,它是Spring 5中引入的非阻塞、响应式的HTTP客户端。

猜你喜欢

转载自blog.csdn.net/Aoutlaw/article/details/131584752
今日推荐