2、okhttp响应缓存

发布时间:2020-07-23 22:26:35 作者:xiaofei_zhang
来源:网络 阅读:3756

1. okhttp框架拥有很好的缓存策略CacheStrategy,并使用DiskLruCache技术对响应的内容进行存储。要建立缓存,要有以下条件:


2. okhttp框架获取响应数据有三种方法:

/**
 * 返回网络上的数据。如果没有使用网络,则返回null。
 */
public Response networkResponse()

/**
 * 返回缓存中的数据。如果不使用缓存,则返回null。对应发送的GET请求,缓存响应和网络响应   *  有可都非空。
 */
public Response cacheResponse()

public Response priorResponse()


3. 代码

OkHttpClient client = new OkHttpClient();
int cacheSize = 10 * 1024 * 1024; // 10 MiB
File cacheDirectory = new File("cache");
if (!cacheDirectory.exists()) {
    cacheDirectory.mkdirs();
}
Cache cache = new Cache(cacheDirectory, cacheSize);
client.setCache(cache);
Request request = new Request.Builder()
        .header("Cache-Control", "no-cache") // 刷新数据
        .url("http://publicobject.com/helloworld.txt")
        .build();
Request request = new Request.Builder()
        .header("Cache-Control", "max-age=0")
        .url("http://publicobject.com/helloworld.txt")
        .build();
Request request = new Request.Builder()
        .header("Cache-Control", "only-if-cached")
        .url("http://publicobject.com/helloworld.txt")
        .build();
int maxStale = 60 * 60 * 24 * 28; //4周
Request request = new Request.Builder()
        .header("Cache-Control", "max-stale=" + maxStale)
        .url("http://publicobject.com/helloworld.txt")
        .build();

:HTTP header中的max-age 和max-stale区别

max-age 指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。

max-stale 指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

推荐阅读:
  1. OkHttp解析
  2. Django的缓存(2)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

android okhttp 响应缓存

上一篇:一文掌握airtest自动化测试工具

下一篇:JQuery中的offset方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》