(Android)基于URL的OkHttpClient缓存(不同的URL有不同的缓存)

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

对于Android应用,是否可以用OkHttpClient为不同的URL设置不同的缓存时间?

例如,我有两个URLs。

  1. http:/www.example.comgetcountries.php

  2. http:/www.example.comgetnews.php

对于第一个网址,我想设置缓存365天。

Request request = new Request.Builder()
    .cacheControl(new CacheControl.Builder()
        .maxStale(365, TimeUnit.DAYS)
        .build())
    .url("http://www.example.com/getcountries.php")
    .build();

第二个网址,我想设置缓存3分钟。

Request request = new Request.Builder()
    .cacheControl(new CacheControl.Builder()
        .maxStale(3, TimeUnit.MINUTES)
        .build())
    .url("http://www.example.com/getnews.php")
    .build();

能否行得通?(有缓存的情况下,调试很困难)。

谢谢大家的支持。

android caching okhttp cache-control
1个回答
1
投票

这可以工作,但我想你要的是max-age而不是max-stale。缓存的响应写在时间 a 到时为止 b, 从响应的头文件中得出的时间。您在 最多停留时间 加到 b 来延长缓存响应的寿命。您在 最大年龄 加到 a 来限制缓存响应的有效时间。

https:/square.github.iookhttp4.xokhttpokhttp3-cache-control-builder。

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