9

これらの最近のバージョンは互換性があるはずだと思いました。このツイートがあります。 https://twitter.com/JakeWharton/status/553066921675857922と Retrofit 1.9 の変更ログにも言及されています。

ただし、これを試すと:

        OkHttpClient httpClient = new OkHttpClient();
        httpClient.interceptors().add(new TokenExpiredInterceptor());

        mRestAdapter = new RestAdapter.Builder()
                .setEndpoint(API_ENDPOINT)
                .setClient(httpClient)
                .setLogLevel(BuildConfig.DEBUG ?
                        RestAdapter.LogLevel.FULL :
                        RestAdapter.LogLevel.NONE)
                .setRequestInterceptor(new AuthorizationInterceptor())
                .build();

それでもうまくいきません。setClient メソッドは、互換性のない Client オブジェクトについて不平を言っています。

Error:(29, 21) error: no suitable method found for setClient(OkHttpClient)
method Builder.setClient(Client) is not applicable
(argument mismatch; OkHttpClient cannot be converted to Client)
method Builder.setClient(Provider) is not applicable
(argument mismatch; OkHttpClient cannot be converted to Provider)

私は何が欠けていますか?また、OkHttpClient が Client インターフェイスを実装していないこともわかりました。

私は今のところこのアプローチを使用しています。https://medium.com/@nullthemall/execute-retrofit-requests-directly-on-okhttp-2-2-7e919d87b64e

変更ログを誤解しましたか? Maye Retrofit 1.9 は、クラスパスにある場合に OkHttpClient 2.2 を使用できますが、インターフェイスはまだ適応されていませんか?

4

1 に答える 1