Java Call Builder, как получить ответ в виде строки для ведения журнала? - PullRequest
0 голосов
/ 18 апреля 2019

Мы получаем json из API отдыха, который мы пытаемся объединить в объект. Однако, поскольку это не всегда работает, мы хотим также регистрировать каждое необработанное тело ответа в виде строки (или, возможно, только в том случае, если есть исключение для сортировки). Например:

Response response = invocationBuilder.get();
int statusCode = response.getStatus();
if (statusCode != 200 && statusCode !=201 && stausCode != 404) {
    logger.error("Got a strange response: " + response.????
}

// this may fail with exceptions...
MyResponseDO myResponse = response.readEntity(MyResponseDO.class);

return myResponse;

Есть предложения? Я не вижу ничего полезного в классе Response (нет getBody () или подобного).

1 Ответ

0 голосов
/ 18 апреля 2019

Поскольку JSON - это просто строка, его можно сопоставить с типом строки.Вы можете получить необработанный ответ, используя:

response.readEntity(String.class);

Примечание: readEntity закрывает поток данных, что означает, что вы не можете снова вызывать readEntity.Начиная с java doc :

Экземпляр сообщения, возвращаемый этим методом, будет кэшироваться для последующего извлечения с помощью getEntity ().Если предоставленный тип объекта не является входным потоком, этот метод автоматически закрывает поток данных неиспользованного исходного объекта ответа, если он открыт.

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