API REST Silverpop возвращает сообщение JSON, например:
{
"meta": {
"attributes": {},
"generalErrors": ["Consent not found"],
"fieldErrors": {},
"links": [],
"nextPageUrl": null
},
"data": null
}
Если не удается найти запись, возвращается 404 с указанным выше JSON, но с
"generalErrors": [" Контакт не найден "]
Если в URL отсутствует параметр, он возвращает 404 с
" generalErrors ": [" Параметр не найден "]
Если база данных не найдена (серьезная ошибка), она возвращает 404 с
"generalErrors": ["База данных не найдена"]
В моем коде я пытаюсь проанализировать ответ JSON в объект, но проблема в том, что анализ просто не делает этого, если ответ 404. Мне нужно получить ответ в объект, чтобы я мог разобрать сообщение об ошибкеи решить, что делать оттуда (т.е. выяснить, если его контакт не найден, что является нормальным, или ошибка).Код выглядит так:
RestApiResponseDO responseDO = response.readEntity(RestApiResponseDO.class);
Если статус 404, результирующий responseDo
пуст (поля не заданы)
Есть ли способ заставить его проанализировать ответне важно какой код статуса?
Другая стратегия может заключаться в том, чтобы прочитать ответ в строку, а затем проанализировать строку.Однако readEndity
не принимает строку, поэтому предположим, что она должна быть преобразована обратно в поток или что-то подобное?Один из них сделал это?