본문 바로가기
Java/AndroidStudio

Android - Retrofit2 라이브러리 설정법 converter-gson, logging-intercepter

by 하니__ 2024. 6. 13.

 

https://github.com/square/retrofit

 

GitHub - square/retrofit: A type-safe HTTP client for Android and the JVM

A type-safe HTTP client for Android and the JVM. Contribute to square/retrofit development by creating an account on GitHub.

github.com

 

https://mvnrepository.com/artifact/com.squareup.retrofit2/converter-gson

 

https://mvnrepository.com/artifact/com.squareup.okhttp3/logging-interceptor

 

자세한 설명은 위 링크를 참조하고

 

  • implementation("com.squareup.retrofit2:retrofit:2.11.0")
  • implementation("com.squareup.retrofit2:converter-gson:2.11.0")
  • implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")

사용하기위해 위의 문구를 그래들에 넣어주자

 

우선 레트로핏은 네트워크 통신을 위한 라이브러리,

컨버터GSON은 JSON을 클래스로 변환해주는 라이브러리

로깅 인터셉터는 LOG를 확인 할 수 있게 해주는 라이브러리이다

 

 

 

그리고 이것들을 사용하기 위해  아래의 화면처럼

api 패키지를 생성후

NetworkClient 자바클래스를 생성하여

아래문구를 넣어주자

 

public static Retrofit retrofit;

public static Retrofit getRetrofitClient(Context context){
    if(retrofit == null){
        // 통신 로그 확인할때 필요한 코드
        HttpLoggingInterceptor loggingInterceptor =
                new HttpLoggingInterceptor();
        loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

        // 네트워크 연결관련 코드
        OkHttpClient httpClient = new OkHttpClient.Builder()
                .connectTimeout(1, TimeUnit.MINUTES)
                .readTimeout(1, TimeUnit.MINUTES)
                .writeTimeout(1, TimeUnit.MINUTES)
                .addInterceptor(loggingInterceptor)
                .build();
        // 네트워크로 데이터를 보내고 받는
        // 레트로핏 라이브러리 관련 코드
        retrofit = new Retrofit.Builder()
                .baseUrl(Config.DOMAIN)
                .client(httpClient)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
    return retrofit;
}

코드 에서

(HttpLoggingInterceptor.Level.BODY)

이 부분은

BODY의 JSON을

로그로 보기 위함이며

아래 화면과 같이

헤더의 정보도 볼 수 있다

NONE으로 설정하면 로그가 찍히지 않는다

 

 

그리고 하드코딩을 방지하기 위해

컨픽 패키지를 생성하여

컨픽 클래스를 생성

 

 

위와 같이 링크를 담아 사용하도록 하자