2016-09-30 1 views
2

J'utilise Retrofit et je veux connecter ma réponse et d'autres choses, je me sers de ce type https://futurestud.io/tutorials/retrofit-2-log-requests-and-responses mais je suis face à Cant résolution setLevel erreursetLevel dévers résolution sur HttpLoggingInterceptor Retrofit2.0

HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); 

logging.setLevel(Level.BODY); // i am getting error on this 

OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); 

httpClient.addInterceptor(logging); //this is also getting error 

I je utilise ce compilation 'com.squareup.okhttp3: journalisation Interceptor: 3.3.1' et amélioration compilation 'com.squareup.retrofit2: convertisseur gson: 2.1.0' dépendance.

This is where i got error

+0

Bonjour, pouvez-vous poster une capture d'écran de l'erreur que vous obtenez? Je vais deviner et dire que vous pourriez avoir votre propre classe de niveau dans votre projet. Essayez 'logging.setLevel (HttpLoggingInterceptor.Level.BODY)' et voyez si cela fonctionne. – lemuel

+0

@lemuel Hay j'ai attacher des captures d'écran pouvez-vous me suggérer quel est le problème? –

+0

Quelle est votre version Retrofit? Pouvez-vous coller la déclaration de dépendance? – lemuel

Répondre

9

Ecrivez votre code interceptor dans la méthode getClient() comme

public class RestClient { 

    public getClient() { 

     HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); 
     logging.setLevel(HttpLoggingInterceptor.Level.BODY); 
} 
} 
+0

Eh bien cela a fonctionné pour moi. Mais pouvez-vous ajouter une explication? –

2

Ajouter cette dépendance à l'gradle de votre application:

compile 'com.squareup.okhttp3:logging-interceptor:3.2.0' 

et de l'utiliser comme ci-dessous: Construisez votre OkHttpClient comme ci-dessous:

finale OkHttpClient.Builder okHttpClientBuilder = new

OkHttpClient.Builder(); 
      HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); 
      interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
      okHttpClientBuilder.addInterceptor(interceptor); 
      okHttpClientBuilder.connectTimeout(RestConstants.DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS) 
     return okHttpClientBuilder.build(); 

Et mis à votre Retrofit en tant que client.

Je vous recommande de vérifier si votre application est Debuggable et de configurer votre intercepteur de journal. Donc, en production, vous ne pourrez pas enregistrer les résultats API.