본문 바로가기
🖥 Programming/📱 Android (Kotlin)

[Android][kotlin] Retrofit error message 확인하는 방법

by MinChan-Youn 2022. 7. 22.

안녕하세요~ 챠니입니다! :)

이번에는 Retrofit 통신에서 실패했을때 에러 메세지를 확인하는 방법에 대해서 알아보겠습니다 :)

 

    Retrofit error message 확인하는 방법

    보통 Retrofit통신부분을 구성하다보면 아래와 같은 형식으로 통신결과값을 확인하게 됩니다.

    if (response.isSuccessful) {
        Log.e("YMC", "response: ${response.body()}")
    }

     

    B.U.T 하지만!

    통신 실패같은 경우는 메세지를 확인하는 방법이 조금 다릅니다!

    아래와 같은 경우가 있다고 생각해 보겠습니다.

    if (response.isSuccessful) {
    	//성공
        Log.e("YMC", "response: ${response.body()}")
    } else if (response.code() == 409) {
    	//실패
        var stringToJson = JSONObject(response.errorBody()?.string()!!)
        Log.e("YMC", "stringToJson: ${stringToJson}")
    
        var stringToJson2 = response.errorBody()?.string()!!
        Log.e("YMC", "stringToJson2: ${stringToJson2}")
    
        Log.e("YMC", "stringToJson msg: ${stringToJson.getString("message")}")
    }

     

    결과는 어떻게 나올까요? 다음과 같이 나오게 됩니다.

    E/YMC: stringToJson: {"message":"Error: 존재하지 않는 사용자입니다."}
    E/YMC: stringToJson2: 
    E/YMC: stringToJson msg: Error: 존재하지 않는 사용자입니다.

     

    여기서 중요한 부분!

    왜? "stringToJson2"의 값은 출력이 안되는 건가요? 라고 생각 할 수 있습니다.

    위의 결과를 통해서 Retrofit에서 error message에 대한 접근은 1번만 가능하다는 것을 알 수 있습니다.

     

     

     

    총 정리 / Retrofit error message 확인하는 방법(1번만 가능)

    response.body().string()

     

     

     

     

     

     

     

     

     

     

     

    질문 또는 궁굼한 부분은 댓글을 남겨주세요! 친절하게 답변드리겠습니다!

    응원의 댓글은 저에게 큰 힘이 된답니다! :)

    즐거운 하루되세요!

     

    깃허브 보러 놀러오세요 👇 (맞팔환영)

    https://github.com/younminchan

     

    younminchan - Overview

    안드로이드 2년차 개발자 •⚽️/🎤/🥁/🖥/🏃‍♂️/🚴‍♂️/🤟 TechBlog⬇️ minchanyoun.tistory.com - younminchan

    github.com