Я хочу записать сообщение об ошибке, когда вызов API возвращает неверный запрос или код состояния = 400
Я делаю это
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if(response.isSuccessful()){
Log.e(TAG, "onResponse: "+response.message() );
Toast.makeText(RegisterCanister.this, "Registered Successfully!", Toast.LENGTH_SHORT).show();
}
else {
try {
Log.e(TAG, "onResponse: "+response.errorBody().string() );
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void onFailure(Call call, Throwable t) {
Toast.makeText(RegisterCanister.this, "Inhaler Registration Failed", Toast.LENGTH_SHORT).show();
}
});
Приведенный выше код переходит в состояние else как код ответа - 400, где response.errorBody не равен NULL, но я не могу получить ответ на него. Я попытался использовать конвертер, а также JSONObject, столкнулся с той же проблемой. Не удалось извлечь информацию из лога errorBody ()
Log.e(TAG, "onResponse: "+response.errorBody().string() );
E/RegisterCanister: onResponse:
, но
Log.e(TAG, "onResponse: "+response.errorBody());
logs
E/RegisterCanister: onResponse: okhttp3.ResponseBody$1@a33dda6
мой ответ об ошибке такой же при попытке в почтальоне.
{"error":"Device not found"}