Таким образом, вы можете проверить, какой код ошибки был выдан запросом.

жен работать с API, который используетJSend формат.

Короче говоря, он использует коды состояния HTTP, которые указывают на статус, как:

200 - это успех406 не авторизован

Это хорошо, потому что из этого я могу определить, был ли мой запрос API успешным или нет.

НО:

Поскольку у формата JSend есть своя собственная особенность, он также имеет небольшой индикатор состояния при ответе:

{
    status : "success",
    data : { "post" : { "id" : 2, "title" : "Another blog post", "body" : "More content" }}
}

Таким образом, у него есть поле «status», которое ТАКЖЕ показывает, успешно ли выполнен запрос API.

ПРОБЛЕМА:

Модификация сделана для анализа ответа на POJO, так что предполагается, что ответы содержат ТОЛЬКО Модель, а не индикаторы успеха, как, например, это: (экземпляр модели после)

{ "id" : 2, "title" : "Another blog post", "body" : "More content" }

Мой вопрос:

Есть ли решение для этого? Могу ли я предварительно проанализировать индикаторы состояния, разделить часть ответа «данные» (модель) и дать ее для модификации только для анализа этой части?

Если бы не я, я бы добавил атрибут «статус» к каждой из моих моделей, что явно не подходит, я не буду этого делать.

Должен ли я просто придерживаться ручного анализа и использованияResponseBody вместо моих моделей в

void onResponse(Call<T> call, Response<T> response); заT тип параметров?

Потому что таким образом я могу использовать.string() и преобразовать строку в JSON, и после этого я могу анализировать свои модели вручную, как писать для них анализатор.

Я бы очень хотел использовать функцию Retrofit для автоматического разбора, потому что сJSend Я просто не могу себе представить, как это можно сделать правильно, если так или иначе вообще.

Я не могу изменить API, так будет.

Ответы на вопрос(3)

Ваш ответ на вопрос