Maison >Java >javaDidacticiel >Comment enregistrer efficacement les demandes et les réponses de Retrofit 2 ?

Comment enregistrer efficacement les demandes et les réponses de Retrofit 2 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-15 09:58:10899parcourir

How to Log Retrofit 2 Requests and Responses Effectively?

Consignation des demandes et des réponses dans Retrofit 2

Retrofit 2 introduit de nouvelles stratégies de journalisation des demandes et des réponses par rapport à son prédécesseur. Voici un guide pour vous aider à mettre en œuvre une journalisation appropriée dans vos applications Retrofit 2 :

Utilisation de HttpLoggingInterceptor

Au lieu des méthodes setLog() et setLogLevel(), désormais obsolètes, Retrofit 2 utilise HttpLoggingInterceptor pour une journalisation complète. Pour utiliser cet intercepteur :

  1. Ajoutez la dépendance gradle :

    implementation 'com.squareup.okhttp3:logging-interceptor:4.11.0'
  2. Créez un objet Retrofit avec l'intercepteur configuré :

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

Sortie

La solution ci-dessus génère des messages logcat similaires à ceux générés with :

setLogLevel(RestAdapter.LogLevel.FULL)

Dépannage

  • java.lang.ClassNotFoundException : Si vous rencontrez cette exception, envisagez d'utiliser une ancienne version de la bibliothèque logging-interceptor. Reportez-vous à la section commentaires pour plus de détails.
  • Niveaux de journalisation obsolètes : Si vous utilisez Java 7 ou 8, vous pouvez voir des avertissements liés aux niveaux de journalisation obsolètes. Pour résoudre ce problème, utilisez la syntaxe suivante :

    interceptor.level(HttpLoggingInterceptor.Level.BODY);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn