Java RestTemplate post请求带MultipartFile和参数
时间: 2023-11-07 21:53:38 浏览: 188
可以使用Spring的`MultiValueMap`类将文件和参数一起封装为请求体,然后使用`RestTemplate`发送POST请求。以下是一个示例代码:
```java
RestTemplate restTemplate = new RestTemplate();
// 设置文件
FileSystemResource file = new FileSystemResource(new File("path/to/file"));
// 设置参数
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
params.add("param1", "value1");
params.add("param2", "value2");
// 封装为请求体
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, Object> request = new LinkedMultiValueMap<>();
request.add("file", file);
request.addAll(params);
// 发送POST请求
String url = "http://example.com/upload";
HttpEntity<MultiValueMap<String, Object>> entity = new HttpEntity<>(request, headers);
ResponseEntity<String> response = restTemplate.postForEntity(url, entity, String.class);
```
注意,需要使用`MediaType.MULTIPART_FORM_DATA`设置请求头。
阅读全文