【问题标题】:Spring Boot Upload file via PUTSpring Boot 通过 PUT 上传文件
【发布时间】:2019-05-09 23:51:42
【问题描述】:
我有一个 curl 查询:
curl -v -X PUT --upload-file "test.txt" http://remote_api_service/api/files
我有一个 Spring Boot 应用程序,我的目标是编写一个反映我上面发布的 curl 的查询。如何使用 RestTemplate 或 WebClient 做到这一点?
【问题讨论】:
标签:
spring-boot
curl
resttemplate
【解决方案1】:
您需要创建带有标题和正文的HttpEntity。将content-type 标头值设置为MediaType.MULTIPART_FORM_DATA。
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("file", new FileSystemResource("test.txt"));
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
String serverUrl = "http://remote_api_service/api/files";
RestTemplate restTemplate = new RestTemplate();
restTemplate.put(serverUrl, requestEntity);