이번엔 OKHttp Logging Interceptor를 사용하여 HTTP 통신 로그를 기록하는 방법 입니다. 단순히 Retrofit 을 사용해 네트워크 통신만 하려 했는데 하면 할 수록 다양한 방법들을 접하는게 너무 잼있네요
okHttp3 logging interceptor을 사용하기 위해 Gradle Dependencis에 아래 빌드 종속 항목 중 okhttp 관련 종속성을 추가해주세요.
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.2'
메소드를 그대로 사용해도 되지만 제가 원하는 형태대로 메시지를 만들고 싶어서 오버라이딩 해줬습니다.
private fun httpLoggingInterceptor(): HttpLoggingInterceptor {
val interceptor = HttpLoggingInterceptor { message -> Log.e("MyHTTPLog :", message + "") }
return interceptor.setLevel(HttpLoggingInterceptor.Level.BODY)
}
okHttpClient 객체에 addInterceptor()에 메소드를 추가해줍니다.
private var okHttpClient: OkHttpClient = OkHttpClient.Builder()
.addInterceptor(httpLoggingInterceptor())
.connectTimeout(100, TimeUnit.MINUTES)
.readTimeout(100, TimeUnit.SECONDS)
.writeTimeout(100, TimeUnit.SECONDS)
.build()
전체 코드
package com.myproject.networkprogramming.retrofit
import android.util.Log
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.util.concurrent.TimeUnit
object NodeRetrofitInstance {
val BASE_URL = "http://localhost:80"
private var okHttpClient: OkHttpClient = OkHttpClient.Builder()
.addInterceptor(httpLoggingInterceptor())
.connectTimeout(100, TimeUnit.MINUTES)
.readTimeout(100, TimeUnit.SECONDS)
.writeTimeout(100, TimeUnit.SECONDS)
.build()
private val client: Retrofit = Retrofit
.Builder()
.baseUrl(BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build()
fun getInstance(): Retrofit = client
}
private fun httpLoggingInterceptor(): HttpLoggingInterceptor {
val interceptor = HttpLoggingInterceptor { message -> Log.e("MyHTTPLog :", message + "") }
return interceptor.setLevel(HttpLoggingInterceptor.Level.BODY)
}
출력 화면
'Android' 카테고리의 다른 글
Android Gallery Permission (0) | 2023.12.17 |
---|---|
Android Runtime Permission (1) | 2023.12.17 |
Retrofit Network Time out (0) | 2023.12.15 |
안드로이드 HTTP 보안 정책 (0) | 2023.12.14 |
Android Network Programming 2 (0) | 2023.12.14 |