Как я могу получить тело json этого запроса GET?

Я использую imgen API Dank Memer для управления изображениями. Чтобы выполнить запрос GET, я использовал Unirest-Java. (https://kong.github.io/unirest-java/)

Код выглядит следующим образом:

HttpResponse<JsonNode> response = Unirest.get("https://dankmemer.services/api/changemymind")
                  .header("Authorization", "tokenhere")
                  .queryString("text", "I am a human")
                  .asJson();

Если я запрашиваю заголовки с response.getHeaders(), он возвращает это:

Date: Mon, 02 Dec 2019 17:07:08 GMT
Content-Type: image/jpeg
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __cfduid=dd737927432f802b76c89b2fa8ee72e171575306428; expires=Wed, 01-Jan-20 17:07:08 GMT; path=/; domain=.dankmemer.services; HttpOnly; Secure
Cache-Control: public, max-age=43200
Expires: Tue, 03 Dec 2019 05:07:08 GMT
X-RateLimit-Limit: 5
X-RateLimit-Remaining: 4
X-RateLimit-Reset: 1575306429645
X-Global-RateLimit-Limit: 300
X-Global-RateLimit-Remaining: 299
X-Global-RateLimit-Reset: 1575306488643
CF-Cache-Status: DYNAMIC
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 53eee53a48a5d709-FRA

Однако мне нужно получить тело ответа, которое возвращает null, когда я его запрашиваю.

response.getBody();

// returns null.
// Also returns null when i put:  response.getBody.toString();

Как показать тело?


person Dorus Blanken    schedule 02.12.2019    source источник
comment
Я ничего не знаю об этом Unirest API, но вызов asJson() и ожидание HttpResponse‹JsonNode› выглядит неправильно, поскольку тело ответа представляет собой изображение JPEG, а не документ JSON.   -  person JB Nizet    schedule 02.12.2019
comment
Вы должны проверить документы API сервера. Может быть, вы получаете URL-адрес изображения? Изображение в формате base64? Возможно, ответ не JSON. Какой код ответа вы получаете? Возможно, даже несмотря на то, что тип содержимого ответа установлен на изображение, у вас возникла проблема. Проверьте, как вы должны ожидать изображение.   -  person Adam    schedule 02.12.2019


Ответы (1)


Я попытался получить ответ в виде файла и сохранить его. Это сработало отлично.

HttpResponse<File> response = Unirest.get("https://dankmemer.services/api/changemymind")
                  .header("Authorization", "tokenhere")
                  .queryString("text", "i am a human" )
                  .asFile("C:\\Users\\PC\\Some Folder\\changemymind.jpg");
person Dorus Blanken    schedule 27.12.2019