restTemplate post调用,body传参,代码展示
时间: 2024-03-09 20:46:28 浏览: 237
下面是使用RestTemplate进行POST请求发送JSON数据的示例代码:
```java
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.web.client.RestTemplate;
public class PostJsonExample {
public static void main(String[] args) {
RestTemplate restTemplate = new RestTemplate();
// 设置请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
// 设置请求体
String jsonBody = "{\"name\":\"John\", \"age\":30}";
HttpEntity<String> request = new HttpEntity<>(jsonBody, headers);
// 发送POST请求
String url = "http://localhost:8080/api/users";
String response = restTemplate.postForObject(url, request, String.class);
System.out.println(response);
}
}
```
上面的代码中,我们首先创建了一个RestTemplate对象。然后,我们设置了请求头,这里我们设置Content-Type为application/json。接着,我们设置了请求体,这里我们使用了一个JSON字符串作为请求体。最后,我们使用RestTemplate发送了POST请求,并将响应结果转换成了String类型。
这里我们使用的是postForObject方法。如果需要获取响应的HTTP头信息,可以使用postForEntity方法。该方法返回一个ResponseEntity对象,它包含HTTP头、状态码、响应体等信息。例如:
```java
ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);
String responseBody = response.getBody();
HttpHeaders responseHeaders = response.getHeaders();
```
需要注意的是,在使用RestTemplate发送POST请求时,如果请求体是JSON格式的数据,我们需要在请求头中设置Content-Type为application/json,这样接收方才能正确地解析请求体中的JSON数据。
阅读全文