【问题标题】:Cannot resolve method setClient(okhttp3.OkHttpClient)无法解析方法 setClient(okhttp3.OkHttpClient)
【发布时间】:2017-05-03 10:04:09
【问题描述】:

我正在使用改造 1.9.0,并且我有以下代码。

private static String ROOT_URL = "www.mydomain.com";
public static RestAdapter restAdapter()
{
    OkHttpClient httpClient= new OkHttpClient.Builder()
            .retryOnConnectionFailure(true)
            .connectTimeout(30, TimeUnit.SECONDS)
            .build();
    RestAdapter.Builder builder = new RestAdapter.Builder();
    builder.setEndpoint(ROOT_URL);
    builder.setLogLevel(RestAdapter.LogLevel.FULL);
    builder.setClient(httpClient);
    RestAdapter restAdapter = builder.build();
    return restAdapter;
}

但我收到错误无法解析方法 setClient(okhttp3.OkHttpClient)。错误不是红色的,而是带有红线下划线。可能是什么问题?

【问题讨论】:

    标签: android retrofit okhttp3


    【解决方案1】:

    这是因为 Retrofit 1.9 中的 setClient() 使用 OkClient 而不是 Retrofit 2.0 中使用的 OkHttpClient。您可以将导入更改为 com.square.okhttp.OkHttpClient 而不是 okhttp3.OkHttpClient 并使用相应的方法。类似于以下内容

    OkHttpClient httpClient= new OkHttpClient();
    httpClient.setRetryOnConnectionFailure(true);
    httpClient.setConnectTimeout(30, TimeUnit.SECONDS);
    RestAdapter.Builder builder = new RestAdapter.Builder();
    builder.setClient(new OkClient(httpClient));
    

    希望这会有所帮助!

    【讨论】:

    • 如上修改代码后出现以下错误 retryOnConnectionFailure has a private access in com.square.okhttp.okhttpclient
    猜你喜欢
    • 2017-02-20
    • 2021-10-25
    • 2016-04-21
    • 2016-04-13
    • 2022-01-25
    • 2018-03-07
    • 2022-08-03
    • 1970-01-01
    相关资源
    最近更新 更多