>Java >java지도 시간 >Retrofit 2 요청 및 응답을 효과적으로 기록하는 방법은 무엇입니까?

Retrofit 2 요청 및 응답을 효과적으로 기록하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-15 09:58:10899검색

How to Log Retrofit 2 Requests and Responses Effectively?

Retrofit 2의 요청 및 응답 로깅

Retrofit 2에는 이전 버전과 비교하여 요청 및 응답 로깅에 대한 새로운 전략이 도입되었습니다. 다음은 Retrofit 2 애플리케이션에서 적절한 로깅을 구현하는 데 도움이 되는 가이드입니다.

HttpLoggingInterceptor 사용

현재 더 이상 사용되지 않는 setLog() 및 setLogLevel() 메서드 대신, Retrofit 2는 포괄적인 로깅을 위해 HttpLoggingInterceptor를 사용합니다. 이 인터셉터를 사용하려면:

  1. gradle 종속성을 추가합니다.

    implementation 'com.squareup.okhttp3:logging-interceptor:4.11.0'
  2. 인터셉터를 사용하여 Retrofit 객체를 만듭니다. 구성됨:

    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    
    OkHttpClient client = new OkHttpClient.Builder()
        .addInterceptor(interceptor)
        .build();
    
    Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(API_URL)
        .client(client)
        .addConverterFactory(GsonConverterFactory.create())
        .build();

출력

위 솔루션은 생성된 것과 유사한 logcat 메시지를 생성합니다. with:

setLogLevel(RestAdapter.LogLevel.FULL)

문제 해결

  • java.lang.ClassNotFoundException: 이 예외가 발생하면 이전 버전 사용을 고려하세요. 로깅 인터셉터 라이브러리의. 자세한 내용은 댓글 섹션을 참조하세요.
  • 더 이상 사용되지 않는 로깅 수준: Java 7 또는 8을 사용하는 경우 더 이상 사용되지 않는 로깅 수준과 관련된 경고가 표시될 수 있습니다. 이 문제를 해결하려면 다음 구문을 사용하세요.

    interceptor.level(HttpLoggingInterceptor.Level.BODY);

위 내용은 Retrofit 2 요청 및 응답을 효과적으로 기록하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.