Spring RestTemplateでファイルをアップロードする際に問題があります。ファイルにアクセント付きの文字が含まれている場合、元のファイル名は正しくエンコードされず、ワイヤを介して正しく送信されません。アクセント付きの文字は、サーバー上に疑問符で表示されます。アクセント付きのSpring RestTemplateファイル名
私はPostmanまたはAdvanced Rest Clientを使用すると動作します。 wiresharkを使用してスニッフィングすると、両方のツールがファイル名を別々にエンコードすることがわかります。誰でもRestTemplateがファイル名でアクセントを正しく扱えるようにする方法を考えましたか?
以下は、私のwebserviceエンドポイントを呼び出すために使用しているコードです。
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);
私はこれを試しましたが、成功しませんでした。これはどんな形でもファイル名には影響しないようです。 – Tammeuh