【发布时间】:2016-12-18 20:47:44
【问题描述】:
我在使用 Spring RestTemplate 上传文件时遇到问题。如果文件包含带重音的字符,则原始文件名未正确编码并且未正确通过网络发送。带重音的字符在服务器上显示为带问号。
如果我使用 Postman 或 Advanced Rest Client,它可以工作。使用wireshark 进行嗅探时,我可以看到两种工具对文件名的编码方式不同。有人知道如何让 RestTemplate 正确处理文件名中的重音符号吗?
下面是我用来调用我的网络服务端点的代码。
final String fileName = "Sécurité report.pdf";
final LinkedMultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
map.add("file", new ClassPathResource(fileName));
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
final HttpEntity<LinkedMultiValueMap<String, Object>> requestEntity = new HttpEntity<>(map, headers);
final RestTemplate restTemplate = new RestTemplate();
final ResponseEntity<String> result = restTemplate.exchange("http://localhost:8080", HttpMethod.POST, requestEntity, String.class);
【问题讨论】:
标签: java spring spring-mvc resttemplate