본문 바로가기

Android/기타

[Android] Retrofit2 응답 대응 처리

반응형
  • onResponse : 서버로부터 응답이 정상적으로 온 경우에 대해서 처리
    • 200, 401, 403 등등의 정상적인 서버 응답
  • onFailure : 에러 때문에 네트워크 요청 실패 혹은 응답에 문제가 있는 경우에 대해서 처리
    • Exception 기준으로 분리할 수 있음
      • java.net.UnknownHostException(해당 호스트를 찾을 수 없는 경우 - 서버가 내려갔다던가... 등등)
      • java.io.IOException(이 경우는 2가지 상황이 있었음)
        • 네트워크 에러
        • 파싱 에러
          • Retrofit2의 기존 컨버터 이용시 해당 형식으로 파싱이 안 되는 경우 발생
          • GsonConverter의 경우 모든 Response가 Json형식으로 와야하는데  아무런 데이터가 없는 경우에도 이 에러가 떴음(내부적으론 JsonSyntax 에러가 뜨지만 겉에서 볼 땐 IOException으로 잡힘). 만약 응답에 Json 형식으로 주면서 아무런 데이터가 없는 경우도 받으려고 하면 antdevhistory.tistory.com/52 참고

 

주의사항은 UnknownHostException이 IOException을 상속받았기 때문에 둘이 따로 처리해야하는 경우 UnknownHostException을 먼저 처리하고 나중에 IOException을 처리하도록 해야합니다.

 

혹시 다른 에러의 경우에 대해서도 있으면 댓글 달아주시면 감사하겠습니다.

 

 

반응형