[Java][RestAssured] Как сохранить ответ приложения / потока октетов в виде изображения jpg?

Я хочу скачать изображения с веб-сайта, используя RestAssured. Мой код:

Response response = given()
            .log().all()
            .cookie(cookie)
            .get(format(image_endpoint, "46581657"));

Конечная точка возвращает код состояния 200 и изображение в виде "application/octet-stream". Как я могу сохранить его как файл jpg?

Я пытался:

String bin = getImageResponse()
            .prettyPrint();
    saveFile("foto.jpg", bin); //this method only save string to file

Но я не могу открыть файл jpg. Как я могу сохранить это?

1 ответ

Приложение / октет-поток MIME-типа состоит из байтов, закодированных в Base64. Используйте класс Base64 для декодирования.

private void saveFile(String path, String octetStream) throws IOException{
    byte[] bytes = Base64.getDecoder().decode(octetStream);

    try(FileOutputStream fos = new FileOutputStream(path)){
        fos.write(bytes);
    }
}

Я ничего не знаю о RestAssured, так что, возможно, есть какой-то способ, предоставляемый фреймворком.

Другие вопросы по тегам