J'utilise retrofit 2.x et je veux enregistrer l'en-tête et le corps de la demande et la réponse.Rénovation 2.x: en-tête de journal pour la demande et la réponse
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.addInterceptor(REWRITE_CACHE_CONTROL_INTERCEPTOR)
.addNetworkInterceptor(new Interceptor() {
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
Request request = chain.request().newBuilder()
.addHeader("key", "value")
.addHeader("HEADER","HEADER Value")
.build();
return chain.proceed(request);
}
}).build();
Et ce que je fais, mon problème est en-tête de la demande ne sont pas connecté dans le Moniteur Android, mais tout repos est connecté.
Gradle Version
compile ('com.squareup.retrofit2:retrofit:2.0.0-beta3') {
// exclude Retrofit’s OkHttp peer-dependency module and define your own module import
exclude module: 'okhttp'
}
compile 'com.squareup.okhttp3:okhttp:3.0.0-RC1'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta3'
compile ('com.squareup.okhttp3:logging-interceptor:3.0.1'){
exclude module: 'okhttp'
}
En utilisant RC1 et 3.0.1 en raison de problème de bug signalé Bug Link
Avez vous avez essayé de déplacer l'intercepteur de journalisation à la dernière position, je. e. ci-dessous l'intercepteur qui ajoute l'en-tête? Selon les docs: '... les intercepteurs sont appelés dans l'ordre. 'Peut-être que la réponse est juste enregistrée avant que les en-têtes ne soient ajoutés? –
@ david.mihola: j'ai essayé .. mais ça n'a pas marché. –
comme alternative, vous pouvez utiliser la bibliothèque stetho facebook http://facebook.github.io/stetho/ –