Próbuję użyć Retrofit w jednym z moich projektów. Mam do czynienia z błędem (nowy OkClient (nowy OkHttpClient ()))
RestAdapter adapter = new RestAdapter.Builder()
.setEndpoint(Constants.GET_API_URL_BASE)
.setLogLevel(RestAdapter.LogLevel.FULL)
.setClient(new OkClient(new OkHttpClient()))
.build();
apiGet = adapter.create(ApiCalls.class);
Błąd, podkreślony na czerwono, jest włączony
(nowy OkHttpClient ())
* Nie można zastosować OkClient (com.squareup.okhttp.OkhttpClient) w OkClient (okhttp3.OkhttpClient) *
Oto moje zależności:
compile "com.android.support:appcompat-v7:23.1.1"
compile "com.google.android.gms:play-services:8.4.0"
compile "net.danlew:android.joda:2.7.1"
compile "com.squareup.retrofit:retrofit:1.9.0"
compile "com.squareup.okhttp3:okhttp:3.0.1"
Dowolny pomysł?.
Dzięki
Odpowiedzi:
5 dla odpowiedzi № 1W przypadku wersji modernizowanych wcześniejszych niż 2.0.0-beta3 musisz użyć OkHttp 2. Zmień zależność OkHttp na compile "com.squareup.okhttp:okhttp:2.7.2"
lub zaktualizuj do Retrofit 2.
4 dla odpowiedzi nr 2
Możesz używać OkHttp3 z Retrofit 1.9 dzięki Jake'owi Whartonowi i jego retrofit1-okhttp3-client
W tej bibliotece wystarczy zmodyfikować setClient()
w Twoim RestAdapter.Builder
używać Ok3Client
zamiast OkClient
.
Kod powinien wyglądać następująco:
RestAdapter adapter = new RestAdapter.Builder()
.setEndpoint(Constants.GET_API_URL_BASE)
.setLogLevel(RestAdapter.LogLevel.FULL)
.setClient(new Ok3Client(new OkHttpClient()))
.build();
Tutaj możesz znaleźć więcej informacji o tym, jak z niego korzystać.