📝레트로핏 라이브러리를 이용해 POST로 API 호출하기
우선 라이브러리를 사용하기 위해 클래스를 만들어준다(https://coding-jisu.tistory.com/283)
@POST("도메인 다음에 올 주소 입력")
Call<응답받은 데이터 저장할 클래스> 함수이름(@Body 바디에 보낼 데이터를 저장한 클래스);
// 유저 관련 API 들을 모아놓은 인터페이스
public interface UserApi {
// 회원가입 API 함수 작성
@POST("/user/register")
Call<UserRes> register(@Body User user);
// 로그인 API
@POST("/user/login")
Call<UserRes> login(@Body User user);
}
Retrofit 라이브러리를 이용해 POST로 API 호출한다
// 회원가입 API를 호출
// 1. 다이얼로그를 화면에 보여준다
showProgress("회원가입 진행중...");
// 2. 서버로 데이터를 보낸다
// 2-1. 레트로핏 변수 생성
Retrofit retrofit = NetworkClient.getRetrofitClient(RegisterActivity.this);
// 2-2. api 패키지에 있는 인터페이스 생성
UserApi api = retrofit.create(UserApi.class);
// 2-3. api 보낼 데이터 만들기 > 클래스의 객체 생성
User user = new User(email, password, nickname);
// 2-4. API 호출
Call<UserRes> call = api.register(user);
// 2.5 서버로부터 받아온 응답을 처리한다
call.enqueue(new Callback<UserRes>() {
@Override
public void onResponse(Call<UserRes> call, Response<UserRes> response) {
// 프로그래스 다이얼로그가 있으면 나타나지않게 해준다
dismissProgress();
// 서버에서 보낸 응답이 200 OK일때 처리하는 코드
if (response.isSuccessful()){
// 서버가 보낸 데이터를 받는 방법
UserRes res = response.body();
// 억세스토큰은 api 호출할때마다 헤더에서 사용하므로
// 회원가입이나 로그인이 끝나면 파일로 꼭 저장해놔야한다
SharedPreferences sp = getApplication().getSharedPreferences(Config.PREFERENCE_NAME,MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString(Config.ACCESS_TOKEN, res.getAccess_token());
editor.apply();
// 3. 데이터를 이상없이 처리하면 메인 액티비티를 화면에 나오게 한다
Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
startActivity(intent);
finish();
} else {
Log.i("MEMO_APP", response.toString());
}
}
@Override
public void onFailure(Call<UserRes> call, Throwable t) {
// 프로그래스 다이얼로그가 있으면 나타나지않게 해준다
dismissProgress();
}
});
'Android Studio' 카테고리의 다른 글
[Android Studio] 날짜/시간 정보 입력받기 (DatePickerDialog/TimePickerDialog) (0) | 2023.02.10 |
---|---|
[Android Studio] Retrofit 라이브러리를 이용해 RecyclerView 화면 처리하기 (0) | 2023.02.09 |
[Android Studio] 안드로이드 네트워크 통신 Retrofit 라이브러리 사용하기 (0) | 2023.02.09 |
[Android Studio] 네트워크를 통해서 로직처리를 할때 보여주는 프로그레스 다이얼로그 만들기 (0) | 2023.02.09 |
[Android Studio] ArrayList 객체 Intent로 전달하기 (0) | 2023.02.08 |
댓글