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客户端。
下一篇:
R语言系列学习(各种检验)