RestTemplate实现post请求携带json数据
时间: 2023-06-15 20:08:00 浏览: 111
RestTemplate可以通过postForObject()方法实现发送POST请求并携带JSON数据。
下面是一个示例代码:
```java
RestTemplate restTemplate = new RestTemplate();
// 创建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
// 创建请求参数
Map<String, Object> params = new HashMap<>();
params.put("name", "John");
params.put("age", 30);
// 创建请求实体
HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(params, headers);
// 发送请求并接收响应
String url = "http://example.com/api/user";
String response = restTemplate.postForObject(url, requestEntity, String.class);
System.out.println("响应数据:" + response);
```
在这个示例中,我们首先创建了一个RestTemplate对象。然后,我们创建了一个HttpHeaders对象,并设置Content-Type为application/json。接着,我们创建了一个Map对象作为请求参数,并将其放入一个HttpEntity对象中。最后,我们调用postForObject()方法,发送请求并接收响应数据。其中,第一个参数是请求URL,第二个参数是请求实体对象,第三个参数是响应数据的类型。
需要注意的是,如果服务器返回的是JSON格式的响应数据,可以将第三个参数指定为一个封装了响应数据格式的Java类,例如:
```java
User user = restTemplate.postForObject(url, requestEntity, User.class);
```
其中,User类是一个封装了响应数据的Java类。
阅读全文