gpt4 book ai didi

android - 使用 OkHttp 2.2 和拦截器改造 1.9

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:37 25 4
gpt4 key购买 nike

我认为这些最新版本应该是兼容的。有这条推文; 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 没有实现客户端接口(interface)。

我目前正在使用这种方法; https://medium.com/@nullthemall/execute-retrofit-requests-directly-on-okhttp-2-2-7e919d87b64e

我是否误解了变更日志? Maye Retrofit 1.9 在类路径中但接口(interface)尚未适配时可以使用OkHttpClient 2.2?

最佳答案

您正在将 OkHttpClient 传递给接受 Client 实现的 RestAdapter.BuilderOkHttpClient 如果不在 Client 实现中使用,则与 Retrofit 无关。

您应该将 OkHttpClient 传递给实现 ClientOkClient 实例

.setClient(new OkClient(httpClient))

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

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

关于android - 使用 OkHttp 2.2 和拦截器改造 1.9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27880362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com