본문 바로가기
Android Studio

[Android Studio] Retrofit2 통신 시 상태 코드에 따른 코드 작성법

by dong_su 2024. 1. 4.
@Override
public void onResponse(Call<UserRes> call, Response<UserRes> response) {
    dismissProgress();

    if (response.isSuccessful()){
        UserRes userRes = response.body();

        SharedPreferences sp = getSharedPreferences(Config.PREFERENCE_NAME, MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();
        editor.putString("token", userRes.access_token);
        editor.apply();

        // 이상 없으므로, 메인 액티비티를 실행한다.
        Intent intent = new Intent(LoginActivity.this, MainActivity.class);
        startActivity(intent);
        finish();

    } else if (response.code() == 400){
        Toast.makeText(LoginActivity.this, "회원가입이 되지 않은 이메일이거나 비번이 틀립니다.", Toast.LENGTH_SHORT).show();
        return;
    } else if (response.code() == 500){
        Toast.makeText(LoginActivity.this, "db 처리에 문제가 있습니다.", Toast.LENGTH_SHORT).show();
        return;
    } else {
        Toast.makeText(LoginActivity.this, "잠시 후 다시 이용하세요.", Toast.LENGTH_SHORT).show();
        return;
    }
}

@Override
public void onFailure(Call<UserRes> call, Throwable t) {
    dismissProgress();
    Snackbar.make(btnLogin, "통신 실패", Snackbar.LENGTH_SHORT).show();
}

통신에 성공 했을 때 코드 작업 작성하는 부분인 onResponse() 함수 안에

if-else문으로 서버의 rest api 개발 시 작성한 상태 코드(status code) 별로 처리한다.