Как распарсить errorBody в retrofit

296
25 января 2018, 19:15

Добрый день!

Использую Retrofit2 в своем проекте. Не могу понять как использовать errorBody, когда в response падает код отличный от 200.

Есть метод:

@POST("request/1")
 Call<ResponseBody> example(
     @Body ExampleRequest exampleRequest
);

Дальше я дергаю его следующим образом:

ErrorReponse errorResponse; //здесь лежит моделька ошибки, условно POJO с 2 полями
Api api = service.getApi(); //пропустим http.builder
Response<ResponseBody> response;
try{
    response = api.example(new ExampleRequest()).execute();
}catch(Exception e){
    //...
}
if(response.isSuccessful()){
//пропустим эту ситуацию 
}else{
    String error = response.errorBody().string();
    errorResponse = Utils.parseErrorResponse(error);
    String errorMessage = errorResponse.getData().getErrors().getMessage();
    int errorCode = errorResponse.getData().getErrors().getCode();
}

Утильный метод parseErrorResponse выглядит так:

public static ErrorResponse parseErrorResponse(String errorResponse) {
    return new Gson().fromJson(errorResponse, ErrorResponse.class);
}

И что я не могу понять, так это то что приходит мне в errorBody. Когда я в первый раз вызываю метод response.errorBody().string(); В нем содержится [text=okhttp3.ResponseBody$1@6179551b]

вот содержимое в отладчике: http://joxi.ru/KAxLzQPt49YQDA

Кто-нибудь сталкивался? Что нибудь посоветуйте пожалуйста.

READ ALSO
Как получить данные из Service в класс

Как получить данные из Service в класс

Есть класс который получает данные для фрагмента

285
Hibernate + SQLite не могут создать таблицу

Hibernate + SQLite не могут создать таблицу

В моем проекте необходима база данных SQLite, с которой я буду работать через HibernateРаботаю в Net Beans, ОС Ubuntu 17

239
Хостинг для Android приложения

Хостинг для Android приложения

Необходим бесплатный хостинг для апробации сервера на JavaТак же необходима поддержка SQLite или другой БД

205
Java Apache POI, разделить строку таблицы в docx файле

Java Apache POI, разделить строку таблицы в docx файле

Генерирую таблицу через Apache POI:

260