Heim >Java >javaLernprogramm >Wie protokolliere ich Retrofit 2-Anfragen und -Antworten effektiv?

Wie protokolliere ich Retrofit 2-Anfragen und -Antworten effektiv?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-15 09:58:10897Durchsuche

How to Log Retrofit 2 Requests and Responses Effectively?

Anfragen und Antworten in Retrofit 2 protokollieren

Retrofit 2 führt im Vergleich zum Vorgänger neue Strategien für die Protokollierung von Anfragen und Antworten ein. Hier ist eine Anleitung, die Ihnen bei der Implementierung der ordnungsgemäßen Protokollierung in Ihren Retrofit 2-Anwendungen hilft:

Verwenden von HttpLoggingInterceptor

Anstelle der jetzt veralteten Methoden setLog() und setLogLevel() Retrofit 2 verwendet HttpLoggingInterceptor für eine umfassende Protokollierung. So verwenden Sie diesen Interceptor:

  1. Fügen Sie die Gradle-Abhängigkeit hinzu:

    implementation 'com.squareup.okhttp3:logging-interceptor:4.11.0'
  2. Erstellen Sie ein Retrofit-Objekt mit dem Interceptor konfiguriert:

    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();

Ausgabe

Die obige Lösung führt zu Logcat-Nachrichten, die den generierten ähneln mit:

setLogLevel(RestAdapter.LogLevel.FULL)

Fehlerbehebung

  • java.lang.ClassNotFoundException: Wenn diese Ausnahme auftritt, sollten Sie die Verwendung einer älteren Version in Betracht ziehen der Logging-Interceptor-Bibliothek. Weitere Informationen finden Sie im Kommentarbereich.
  • Veraltete Protokollierungsstufen: Wenn Sie Java 7 oder 8 verwenden, werden möglicherweise Warnungen zu veralteten Protokollierungsstufen angezeigt. Um dieses Problem zu beheben, verwenden Sie die folgende Syntax:

    interceptor.level(HttpLoggingInterceptor.Level.BODY);

Das obige ist der detaillierte Inhalt vonWie protokolliere ich Retrofit 2-Anfragen und -Antworten effektiv?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn