2016-02-18 5 views
0

Я пытаюсь получить свой сетевой класс для регистрации входящего JSON, я бы хотел использовать HttpLoggingInterceptor из OkHttp3. Проблема в том, что мой объект Retrofit не будет использовать OkHttpClient из okhttp3. Пожалуйста, дайте мне знать, знаете ли вы, что я делаю неправильно.okhttp3 with Retrofit 2.0.0-beta4

Gradle

compile 'com.squareup.retrofit:retrofit:2.0.0-beta4' 
compile 'com.squareup.okhttp3:okhttp:3.1.2' 
compile 'com.squareup.retrofit:converter-jackson:2.0.0-beta2' 
compile 'com.squareup.okhttp3:logging-interceptor:3.0.1' 

дооснащения и клиент установки

import okhttp3.OkHttpClient; 
import okhttp3.logging.HttpLoggingInterceptor; 
import retrofit.Retrofit; 

HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); 
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
client = new OkHttpClient.Builder().addInterceptor(interceptor).build(); 

retrofit = new Retrofit.Builder().baseUrl(URL).client(client).addConverterFactory(JacksonConverterFactory.create()).build(); 

API = retrofit.create(com.glasshouse.glasshouse.Network.API.class); 

Android студия говорит дооснащения нуждается okhttp.OkHttpClient не okhttp3.OkHttpClient, но если использовать этот один, я не могу использовать HttpLoggingInterceptor .. .

Спасибо за любой ответ.

ответ

1

Да фигу - для тех, которые сталкиваются с аналогичными вопросами, использование retrofit2 не дооснастить

(нужно импортировать retrofit2.Retrofit не импортировать retrofit.Retrofit)

+0

Это не ответ на ваш вопрос. –

+1

@Shubham Да, это так. Необходимо «импортировать retrofit2.Retrofit' not' import retrofit.Retrofit' – laalto

+0

Возможно, вам стоит прочитать советы по форматированию на SO, как указано здесь - http://stackoverflow.com/help/formatting. –

0

Я использую следующие настройки для модернизации и она хорошо работает.

Внутри build.gradle:

 compile 'com.squareup.okhttp3:okhttp:3.0.1' 
     compile 'com.squareup.okhttp:logging-interceptor:2.6.0' 
     compile 'com.fasterxml.jackson.core:jackson-core:2.4.1' 
     compile 'com.fasterxml.jackson.core:jackson-annotations:2.4.1' 
     compile 'com.fasterxml.jackson.core:jackson-databind:2.4.1' 

дооснащения Конфигурация:

private WebServices getWebServices(String serverUrl) { 
    OkHttpClient client = new OkHttpClient(); 
    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); 
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
    client.interceptors().add(interceptor); 
    Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl(serverUrl) 
      .addConverterFactory(GsonConverterFactory.create()) 
      .client(client) 
      .build(); 
    webServices = retrofit.create(WebServices.class); 
    return webServices; 
} 
1

В качестве эталона для других, вы должны скомпилировать "com.squareup.retrofit2", а не «com.squareup. модифицировать "в вашей градиенте.

//old 
compile 'com.squareup.retrofit:retrofit:2.0.0-beta4' 

//new 
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4' 
Смежные вопросы