resttemplate上传下载文件
时间: 2023-10-21 21:26:44 浏览: 95
可以使用RestTemplate来实现文件的上传和下载。
对于文件上传,可以使用`multipart/form-data`的形式发送请求。示例代码如下:
```java
// 构建请求体
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("file", new FileSystemResource("/path/to/file"));
// 设置请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
// 创建请求实体
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
// 发送POST请求
String url = "http://example.com/upload";
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.postForEntity(url, requestEntity, String.class);
```
对于文件下载,可以直接发送GET请求并获取文件内容。示例代码如下:
```java
// 发送GET请求
String url = "http://example.com/download";
RestTemplate restTemplate = new RestTemplate();
byte[] response = restTemplate.getForObject(url, byte[].class);
// 将文件保存到本地
FileOutputStream fos = new FileOutputStream("/path/to/save/file");
fos.write(response);
fos.close();
```
上述代码中,需要注意的是`/path/to/file`和`/path/to/save/file`应该替换为实际的文件路径。另外,相应地,也需要根据实际情况修改URL和请求头中的Content-Type。
阅读全文