自定义缓存OkHttp

问题描述 投票:0回答:1

我想在我的应用程序中缓存 API 请求,以便用户即使离线也可以看到一些内容。

我还有一个带有多个标头的

HeaderInterceptor
,例如
language
,如
en
es
fr
等...同一端点根据标头
language
返回不同的结果。

从我在 OkHttp 源代码中读到的内容来看,缓存只关心 url,因此即使我的用户更改语言并且使用不同的标头发出新请求,他也会获得缓存响应,而不是创建新的响应打电话。

如何创建一个也考虑标头的自定义缓存?

android kotlin okhttp
1个回答
0
投票

您的服务器应该设置 Vary 标头

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Vary

如果您在应用程序拦截器中应用标头,OkHttp 应该尊重 Vary 标头

© www.soinside.com 2019 - 2024. All rights reserved.