Retrofit - 네트워크 통신시 http 에러 상세 출력하는 방법

반응형

 

요약 : response.body()는 네트워크 오류시 null 값을 받기 때문에 response.errorBody()로 받아야 한다.

 

onResponse 메소드의 조건문에 else에서 로그 설정

  • 에러 로그캣에서 확인
@Override
public void onResponse(Call<Movie> call, Response<Movie> response) {
    if(response.isSuccessful()) {
        // 200 OK, 네트워크 정상 응답시 실행 코드 작성
    }
    else{ // 실패시 상세 오류 내용 출력
        try {
            String body = response.errorBody().string();
            Log.i("MyTest", "error - body : " + body);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
반응형