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
1004 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!

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