使用RestTemplate发送multipart/form-data格式的数据
时间: 2023-11-22 18:04:08 浏览: 85
RestTemplate可以通过`MultiValueMap`来发送`multipart/form-data`格式的数据。下面是一个示例代码:
```java
RestTemplate restTemplate = new RestTemplate();
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("file", new FileSystemResource(new File("/path/to/file")));
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
String url = "http://localhost:8080/upload";
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
```
上面的代码中,首先创建了一个`MultiValueMap`对象,将要上传的文件添加到其中。然后设置请求头为`multipart/form-data`。接着创建一个`HttpEntity`对象,将`MultiValueMap`对象和请求头作为参数传入。最后使用`RestTemplate`发送POST请求,将`HttpEntity`对象和目标URL作为参数传入。上传成功后,服务器返回的响应体将被解析为`String`类型的对象,并存储在`ResponseEntity`对象中。
阅读全文