retrofit - OkHttpClient无法解析方法setCache

标签 retrofit okhttp okhttp3

我正在尝试为Retrofit设置缓存,以便它不必不断检索数据。我遵循了this SO,因为它似乎朝着我所需要的正确方向发展。

我有以下内容(与SO相同)

OkHttpClient client = new OkHttpClient();
client.networkInterceptors().add(REWRITE_CACHE_CONTROL_INTERCEPTOR);
File httpCacheDirectory = new File(getCacheDir(), "responses");
int cacheSize = 10*1024*1024;
Cache cache = new Cache(httpCacheDirectory, cacheSize);
client.setCache(cache);

但是,client.setCache(cache)返回错误cannot resolve method setCache

我在这里做错了什么?我已经 retrofit 了2.1.0和okhttp3 3.4.1

最佳答案

在3.x中,将OkHttpClient上的一堆方法移到OkHttpClient.Builder上的方法。您想要这样的东西:

File httpCacheDirectory = new File(getCacheDir(), "responses");
int cacheSize = 10*1024*1024;
Cache cache = new Cache(httpCacheDirectory, cacheSize);

OkHttpClient client = new OkHttpClient.Builder()
    .addNetworkInterceptor(REWRITE_CACHE_CONTROL_INTERCEPTOR)
    .cache(cache)
    .build();

关于retrofit - OkHttpClient无法解析方法setCache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39988422/

相关文章:

java - 我在 Retrofit 中得到奇怪的响应,协议(protocol)=http/1.1,代码=200

java - 需要等待 MainActivity 中改造请求的答复

Android Retrofit 2.0.0-beta2 Post string body 动态 header

android - retrofit2 okhttp3 android multipart socket tomeout错误

android - 改造 Pojo 模型

android - Android 内部使用 OkHttp 吗?

java - Okhttp java.net.ProtocolException : unexpected end of stream

android - Retrofit 2 在拦截中将帖子附加到请求体

android-espresso - 模拟服务器请求Android Espresso UI测试