RestTemplate传输MultipartFile文件流
时间: 2024-05-07 10:13:40 浏览: 54
RestTemplate 是 Spring 提供的一个用于访问 REST 服务的客户端,它可以简化我们的 REST 服务调用,封装了对 HTTP 协议的请求和响应。传输 MultipartFile 文件流可以通过 RestTemplate 的 postForEntity 方法来实现。
首先,我们需要构造一个 MultiValueMap 对象,将文件流和其他参数存入该对象中。然后,使用 HttpHeaders 构造请求头,并将 MultiValueMap 和请求头放入 HttpEntity 中,最后调用 postForEntity 方法进行传输。
以下是代码示例:
```java
public void uploadFile(MultipartFile file) {
RestTemplate restTemplate = new RestTemplate();
String url = "http://example.com/uploadFile";
MultiValueMap<String, Object> bodyMap = new LinkedMultiValueMap<>();
bodyMap.add("file", new ByteArrayResource(file.getBytes()));
bodyMap.add("name", "test");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(bodyMap, headers);
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, requestEntity, String.class);
System.out.println(responseEntity.getBody());
}
```
阅读全文