[Android] Retrofit errorBody() 값 확인하기

Android/Android · 2021. 8. 27. 18:30
반응형

Retrofit에서 body가 null 이거나 response가 fail이 뜨게 되면 errorBody()로 오류 내용이 넘어온다. 보통은 다음과 같이 쓰는 경우가 있다.

 

Log.d("MainActivityRepository", response.errorBody().toString())

 

그러나 출력 결과를 보면

 

D/MainActivityRepository: okhttp3.ResponseBody$Companion$asResponseBody$1@3eca438

 

다음과 같이 알 수 없는 오류가 뜬다. 물론 OkHttp logging을 사용하면 어떤 오류인지는 알 수 있지만, 해당 시점에선 아직 추가하지 않았다. 그래서 간단하게 알아볼 수 있는 방법은 toString()을 사용하는 것이 아닌 string()을 사용하는 것이다.

 

Log.d("MainActivityRepository", response.errorBody()?.string()!!)

 

그럼 다음과 같이 어떤 오류가 발생했는지 알 수 있다.

 

D/MainActivityRepository: {"error":{"errorCode":"300","message":"Not Found Exception","details":"URL not found."}}

 

반응형