Скорее всего, сервер возвращает документ (docx) как двоичный (application/octet-stream
). Ваш код сохраняет строковое представление документа:
ResponseEntity<String> response = restTemplate.exchange(fileUrl, HttpMethod.GET, request, String.class);
String responseStrFromSharePoint = response.getBody();
Вот почему файл не может быть декодирован приложением. Вместо этого сохраните точный двоичный файл (байты), возвращаемый сервером, как показано в следующем фрагменте:
ResponseEntity<byte[]> response = restTemplate.exchange(fileUrl, HttpMethod.GET, request, byte[].class);
byte[] responseStrFromSharePoint = response.getBody();
Другие части кода кажутся нормальными.