Добрый день!
Использую 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
Кто-нибудь сталкивался? Что нибудь посоветуйте пожалуйста.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В моем проекте необходима база данных SQLite, с которой я буду работать через HibernateРаботаю в Net Beans, ОС Ubuntu 17
Необходим бесплатный хостинг для апробации сервера на JavaТак же необходима поддержка SQLite или другой БД