【发布时间】:2017-05-07 06:51:38
【问题描述】:
由于缓存类设置为最终,我无法编写自己的实现,我需要加密缓存,因为是敏感数据。我会尝试使用拦截器,但没有什么比 CacheResponseInterceptor 更能加密和解密它了。如何使用OkHttp 做到这一点?
【问题讨论】:
-
我怀疑这不是直接可能的,基于this issue comment。您可能需要禁用 OkHttp 的缓存并自己进行缓存。
-
@CommonsWare 是的,但是怎么做?是否可以构建我自己的缓存响应?如果是这样,我想我会在拦截器中这样做。
-
不,我的意思是在 OkHttp 之外进行自己的缓存。您禁用 OkHttp 的缓存。当您收到响应时,您将该响应和相关元数据(例如,缓存标头)写入加密数据存储。当您稍后需要发出请求时,请先检查您的加密数据存储,然后再触摸 OkHttp,并且仅在您自己的缓存过时或没有此数据时才使用 OkHttp。这很痛苦,I added your request to the OkHttp 4.0 wishlist,FWIW。