반응형
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."}}
반응형
'Android > Android' 카테고리의 다른 글
[Jetpack Compose] Row와 Column을 이용해서 Grid 화면 만들기 (0) | 2023.03.10 |
---|---|
[Android][@Qualifier] Dagger Hilt로 같은 Retrofit 객체를 여러 번 호출할 때 사용하는 방법 (0) | 2021.08.27 |
[Android] 코루틴(Coroutine)을 활용한 카운트다운 타이머 만들기 (0) | 2021.02.07 |
[Android] AsyncTask와 카운트다운 타이머 앱 (0) | 2020.07.30 |
[Android] 스레드와 핸들러 (0) | 2020.07.29 |