中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

2、okhttp響應緩存

發布時間:2020-07-23 22:26:35 來源:網絡 閱讀:3756 作者:xiaofei_zhang 欄目:移動開發

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消息的值,那么客戶機可以接收超出超時期指定值之內的響應消息。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

墨竹工卡县| 亳州市| 乐至县| 临城县| 余江县| 图们市| 南汇区| 龙陵县| 武鸣县| 芷江| 壤塘县| 阜宁县| 新竹县| 定南县| 新乐市| 灌云县| 望城县| 东兰县| 拉萨市| 沿河| 沧源| 阿图什市| 安徽省| 漳州市| 凤台县| 辽中县| 虎林市| 闵行区| 教育| 巫山县| 聊城市| 珲春市| 灵寿县| 安岳县| 宁化县| 筠连县| 如东县| 浏阳市| 汽车| 桂东县| 绥阳县|