Невозможно загрузить файл docx с помощью REST API загрузки файла SharePoint & Java - PullRequest
1 голос
/ 13 июля 2020

Я получил прикрепленное значение img в качестве ответа от сервера SharePoint, но не могу записать его в файл docx. API загрузки файла с использованием Postman дает такой же ответ, и если я сохраню ответ Postman в файле docx, он отлично сохраняется, но не со стороны Java. Если я напишу тот же ответ на файл docx, используя Java, файл будет поврежден.

Я использую этот REST API для загрузки файла из Sharepoint:

SiteURL/_api/web/getfilebyserverrelativeurl('relativeURL/Shared Documents/test.docx')/$value

Я прикрепляю ответ, полученный от сервера здесь:

ответ от сервера sharepoint

Прошу помощи, заранее спасибо.

1 Ответ

1 голос
/ 22 июля 2020

Скорее всего, сервер возвращает документ (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();

Другие части кода кажутся нормальными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...