【发布时间】:2018-07-17 16:50:08
【问题描述】:
我正在使用 Retrofit 与一个简单的 REST API 进行通信。我知道 OkHttp 可以配置为使用缓存,据我在他们的文档中所见,如果您明确地给它一个缓存(例如 LruCache),则应该只有响应缓存。
在我的情况下,如果服务器不允许缓存,则响应到达大约需要 5 秒。但是,如果启用了Cache-Control: max-age=300,则响应到达大约需要 50 毫秒。
所以我的问题很简单:我没有得到什么?缓存在哪里? OkHttp 是否有一些隐式响应缓存?
或者更明显的选择:这真的是服务器端缓存吗?
val okHttpClient = OkHttpClient.Builder()
.connectTimeout(CONNECTION_TIMEOUT_MS, TimeUnit.MILLISECONDS)
.readTimeout(READ_TIMEOUT_MS, TimeUnit.MILLISECONDS)
.writeTimeout(WRITE_TIMEOUT_MS, TimeUnit.MILLISECONDS)
.build()
val retrofit = Retrofit.Builder()
.baseUrl(endpoint)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build()
service = retrofit.create<RetrofitService>(RetrofitService::class.java)
我正在使用依赖于 OkHttp 3.8.0 的 Retrofit 2.3.0
【问题讨论】: