网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

2、okhttp响应缓存

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

创新互联专注于天祝藏族自治网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供天祝藏族自治营销型网站建设,天祝藏族自治网站制作、天祝藏族自治网页设计、天祝藏族自治网站官网定制、微信小程序定制开发服务,打造天祝藏族自治网络公司原创品牌,更为您提供天祝藏族自治网站排名全网营销落地服务。

  • 可以读写的缓存目录

  • 缓存大小的限制

  • 缓存目录应该是私有的,不信任的程序不能读取缓存内容

  • 全局用户唯一的缓存访问实例。okhttp框架全局必须只有一个OkHttpClient实例(new OkHttpClient()),并在第一次创建实例的时候,配置好缓存。

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消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。


名称栏目:2、okhttp响应缓存
标题来源:http://bjjierui.cn/article/pdoses.html

其他资讯