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
Libérer: 2024-12-15 09:58:10
original
897 Les gens l'ont consulté

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'
    Copier après la connexion
  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();
    Copier après la connexion

Sortie

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

setLogLevel(RestAdapter.LogLevel.FULL)
Copier après la connexion

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);
    Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal