Retrofit2를 사용한 node js와 통신

HR·2022년 4월 14일
0

Android

목록 보기
2/2

Retrofit 이란?

  • Retrofit2 : REST API 통신 라이브러리

Squareup 사에서 개발된 라이브러리로, REST 통신 라이브러리 중 사용성이 좋아 가장 많이 사용된다.

Retrofit 의 특징들

  • Okhttp 라이브러리를 네트워크 계층으로 활용한다.
  • Async Task 없이 백그라운드 스레드에서 실행되며, 콜백을 통해 업데이트를 한다.

Retrofit2의 기본 사용 설정

1. dependencies 추가

implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'

2. 통신을 위해 AndroidManifest에 인터넷 권한 추가

<uses-permission android:name="android.permission.INTERNET"/>

3. http 접근 허용을 위한 예외처리

  • AndroidManifest의 application에 다음을 추가
android:usesCleartextTraffic="true"

4. 서버에서 retrofit을 이용해 받아오는 service api 구현

public interface LoginServiceApi {
    @GET("/")
    Call<ResponseBody> getFunc(@Query("data") String data); //get은 쿼리 형태로 보낸다

    @FormUrlEncoded
    @POST("/login")
    Call<ResponseBody> login(@Field("user_email") String email, //서버에서 받을 이메일
                             @Field("user_pw") String pw); //서버에서 받을 비밀번호

    @FormUrlEncoded
    @PUT("/{id}")
    Call<ResponseBody> putFunc(@Path("id") String id,
                               @Field("data") String data);

    @DELETE("/{id}")
    Call<ResponseBody> deleteFunc(@Path("id") String id);
}
  • @Body parameters cannot be used with form or multi-part encoding 에러가 뜰 경우 여기서 @FormUrlEncoded 어노테이션을 지워주면 된다!

0개의 댓글