resttemplate上传文件
时间: 2023-11-23 07:08:10 浏览: 74
在使用 RestTemplate 上传文件时,可以使用 `org.springframework.core.io.FileSystemResource` 类将文件包装成资源对象,然后作为参数传递给 RestTemplate 的 `postForObject` 方法。以下是一个示例代码:
```java
RestTemplate restTemplate = new RestTemplate();
// 创建一个 Resource 对象
Resource resource = new FileSystemResource(new File("path/to/file"));
// 创建请求体对象,包含文件和其他参数
MultiValueMap<String, Object> requestBody = new LinkedMultiValueMap<>();
requestBody.add("file", resource);
requestBody.add("param1", "value1");
requestBody.add("param2", "value2");
// 创建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
// 创建请求
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(requestBody, headers);
// 发送请求
String url = "http://example.com/upload";
String response = restTemplate.postForObject(url, requestEntity, String.class);
```
在上述代码中,`FileSystemResource` 类需要传递一个 `File` 对象作为参数,该对象表示要上传的文件。然后,我们将文件和其他参数添加到 `MultiValueMap` 对象中,并将其传递给 `HttpEntity` 对象。最后,我们使用 `RestTemplate` 的 `postForObject` 方法将请求发送到服务器并接收响应。
阅读全文