使用RestTemplate发送multipart/form-data格式的数据
时间: 2023-11-22 19:34:51 浏览: 62
C# 使用multipart form-data方式post数据到服务器
5星 · 资源好评率100%
发送 `multipart/form-data` 格式的数据可以使用 Spring 的 `RestTemplate` 类库。
以下是一个示例代码:
```java
RestTemplate restTemplate = new RestTemplate();
MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>();
formData.add("file", new FileSystemResource(new File("path/to/file")));
formData.add("name", "John Doe");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(formData, headers);
String url = "http://example.com/upload";
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
```
在此示例中,我们首先创建了一个 `RestTemplate` 实例,然后创建了一个 `MultiValueMap` 对象来保存表单数据。我们添加了一个文件和一个文本字段。接下来,我们设置请求头为 `multipart/form-data` 类型,并使用 `HttpEntity` 包装表单数据和请求头。最后,我们使用 `RestTemplate.exchange()` 方法发送 POST 请求,并获得响应。
注意,要添加文件,我们使用了 `FileSystemResource` 类,该类将文件转换为资源对象以便在 `MultiValueMap` 中进行添加。
阅读全文