Notice
Recent Posts
Recent Comments
Link
투케이2K
78. (Library/Framework) [라이브러리] [Android] Okhttp Logging Interceptor - http 통신 전문 로그 출력 라이브러리 본문
Library & F.W
78. (Library/Framework) [라이브러리] [Android] Okhttp Logging Interceptor - http 통신 전문 로그 출력 라이브러리
투케이2K 2023. 12. 6. 18:46[타이틀]
구 분 : Library / 라이브러리
제 목 : [라이브러리] [Android] Okhttp Logging Interceptor - http 통신 전문 로그 출력 라이브러리
[설 명]
// ------------------------------------------------------------------------
[설 명]
1. Okhttp Logging Interceptor 라이브러리는 okhttp 통신 수행 시 HTTP 요청 및 응답 데이터를 기록하는 OkHttp 인터셉터 입니다
2. Okhttp Logging Interceptor 라이브러리는 http 통신 수행 시 민감 정보를 노출할 수 있으므로, [개발] 환경에서만 디버깅 용으로 사용하도록 권장하고 있습니다
3. Okhttp Logging Interceptor 라이브러리에서는 Level 단계를 설정해 로그 출력 단위를 지정할 수 있습니다
- BASIC : 요청 및 응답 라인을 기록
- BODY : 요청 및 응답 줄과 해당 헤더 및 본문(있는 경우)을 기록
- HEADERS : 요청 및 응답 줄과 해당 헤더를 기록
- NONE : 로그가 없습니다
// ------------------------------------------------------------------------
[의존성 설정 방법]
// -----------------------------------------------------------
// [build.gradle 파일 의존 설정] : [okhttp 통신 라이브러리]
// -----------------------------------------------------------
implementation("com.squareup.okhttp3:okhttp:4.9.0")
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'
// -----------------------------------------------------------
// ------------------------------------------------------------------------
[사용 방법 예시]
// ------------------------------------------------------
// TODO [HTTP 통신 전문 로그 기록]
// ------------------------------------------------------
HttpLoggingInterceptor httpLogger = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
Log.e("HTTP-LOG", "LOGGER : " + message);
}
});
httpLogger.setLevel(HttpLoggingInterceptor.Level.BODY);
// ------------------------------------------------------
// TODO [OK HTTP 객체 선언 및 HTTP 통신 로그 출력 옵션 지정] : addInterceptor
// ------------------------------------------------------
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(TIME_OUT_SECOND, TimeUnit.SECONDS) // [커넥션 제한 시간]
.readTimeout(TIME_OUT_SECOND, TimeUnit.SECONDS) // [read 타임 아웃]
.writeTimeout(TIME_OUT_SECOND, TimeUnit.SECONDS) // [write 타임 아웃]
.addInterceptor(httpLogger) // [Http 통신 로그]
.retryOnConnectionFailure(false)
.build();
// ------------------------------------------------------------------------
[참고 사이트]
https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor
https://square.github.io/okhttp/3.x/logging-interceptor/okhttp3/logging/HttpLoggingInterceptor.Level.html
// ------------------------------------------------------------------------
반응형
'Library & F.W' 카테고리의 다른 글
Comments