Ответ успокоенного Parse Body с границей - PullRequest
0 голосов
/ 15 ноября 2018

Я использую RestAssured и пытаюсь загрузить файлы с помощью вызова de GET.

Моя проблема в том, что тело запроса организовано с границей.

Так что файл, который я получаю, содержит слишком много информации и не может быть использован. Вот пример содержимого загруженного простого текстового файла:

- a8f82a89-d9c2-4fcb-a612-06e286bfcf66 Content-Disposition: форма-данные; Name = "метаданные"; имя файла = «метаданные» Тип контента: приложение / JSON { "Имя": "Fichier_de_calcul.txt", "идентификатор": { "метаданные": { "удален" ложь "эфемерный" ложь "синтезированный": правда, "systemOwned": правда, "доступен только для чтения": ложные "synchronisable": правда, "createdOn": "2018-11-09T15: 36: 39Z", "включено": правда, "lastModifiedOn": "2018-11-09T15: 36: 40.444Z"}, "значение" : { "@ типа": "CoreKit.UUIDKey", "значение": "4de39a67-0075-4232-a236-09ab8d10aed9"}}} --a8f82a89-d9c2-4fcb-a612-06e286bfcf66 Content-Disposition: форма-данные; Name = "@ тип"; имя файла = «@ тип» Тип контента: текст / обычный CoreKit.FileMetadataAndFile --a8f82a89-d9c2-4fcb-a612-06e286bfcf66 Content-Disposition: форма-данные; Name = "файл"; имя файла = «Файл» Тип контента: приложение / октет-поток 2 4 6 8 10 --a8f82a89-d9c2-4fcb-a612-06e286bfcf66 -

А вот код, который я использовал для получения этого файла:

    Response resp = RestAssured.given().headers(headers).get(url);
    byte[] fileContent = resp.body().asByteArray();
    File fileToSave = new File(classPath);
    try {
        Files.write(fileContent, fileToSave);
    } catch (IOException e1) {
        e1.printStackTrace();
    }

Кто-нибудь знает, как я могу сделать:

Разобрать тело (хотелось бы получить параметр "filename") Создайте загруженный файл на основе части «application / octet-stream».

Спасибо =)

1 Ответ

0 голосов
/ 15 ноября 2018

Можете ли вы попробовать ниже appraoch: Вы можете установить все заголовки, которые у вас есть, и получить запрос с вашим URL.

    Response response=RestAssured.given().header("Content-Type", "application/json").get("yourURL").then().contentType(ContentType.JSON).extract().response();
String finaleNAme=response.jsonPath().get("jsonValuewhichyouwanttoget");
...