Heim >Java >javaLernprogramm >Wie protokolliere ich Retrofit 2-Anfrage- und Antworttexte?
Anfragen und Antworten in Retrofit 2 protokollieren
In Retrofit 1 war die Protokollierung des genauen JSON-Codes, der in einer Anfrage gesendet wurde, mithilfe von setLog() und unkompliziert setLogLevel(). Retrofit 2 hat diese Methoden jedoch inzwischen veraltet, sodass sich Entwickler fragen, wie sie den Netzwerkverkehr ordnungsgemäß protokollieren können.
Verwendung von HttpLoggingInterceptor
Die Lösung liegt in HttpLoggingInterceptor, das hinzugefügt werden kann an den OkHttpClient, um sowohl Anfrage als auch Antwort zu protokollieren bodys:
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
Als nächstes erstellen Sie ein Retrofit-Objekt mit dem OkHttpClient mit dem hinzugefügten Interceptor:
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(...) .client(client) .addConverterFactory(GsonConverterFactory.create()) .build();
Wenn Sie die Protokollierungsebene auf BODY festlegen, werden detaillierte Protokolle bereitgestellt, die denen ähneln, die von setLogLevel generiert werden (RestAdapter.LogLevel.FULL) in Retrofit 1.
Auflösung ClassNotFoundException
Wenn Sie auf eine java.lang.ClassNotFoundException stoßen, stellen Sie sicher, dass die Version von logging-interceptor mit Ihrer Retrofit-Version übereinstimmt. In einigen Fällen erfordern ältere Retrofit-Versionen möglicherweise eine frühere Logging-Interceptor-Version.
Das obige ist der detaillierte Inhalt vonWie protokolliere ich Retrofit 2-Anfrage- und Antworttexte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!