java - 如何在okhttp中使用共享缓存

标签 java okhttp

是否可以以共享方式使用 okhttp 缓存,即:让多个客户端访问同一缓存目录,以避免每个客户端都保留自己的缓存目录。

repices of the okhttp wiki我们发现:

It is an error to have multiple caches accessing the same cache directory simultaneously

我并不是在寻找不同的缓存来使用同一文件夹,而是在寻找可以由多个客户端更新的单个共享缓存。

一个简单的例子是(在 Java 中)运行:

    Cache cache = new Cache(cacheDirectory, cacheSize);

    client  = new OkHttpClient.Builder().cache(cache).build();
    client2 = new OkHttpClient.Builder().cache(cache).build();

这样做会不安全吗?如果是这样,是否有其他方法可以实现这一目标,或者根本不可能?

最佳答案

是的,这是完全安全的。无论是在一个进程还是多个进程中,共享一个目录的多个 Cache 实例都是不安全的。

关于java - 如何在okhttp中使用共享缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50133101/

相关文章:

java - 功能java : what's this P1 thing?

java - NoSuchElementException 与 Java.Util.Scanner

java - 安卓|运行时获取 OkHTTP 库版本

android - 如何使用 okhttp 禁用 SSLv3 回退

java - 将抓取的 URL 转换为真实 URL 最安全的方法是什么?

java - 非线程安全尝试实现 Put-if-absent?

java - Apache Tapestry 5 属性绑定(bind) - 错误

java - 改造 2.0 java.lang.IllegalStateException : Expected BEGIN_ARRAY but was STRING

java - 为 Android 应用获取 Spotify API 的访问 token

kotlin - 我在手机上打开互联网后, retrofit 和 okhttp 将无法工作