91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

屯留县| 吴江市| 常宁市| 满洲里市| 陇西县| 庆元县| 邓州市| 黔西| 逊克县| 玉屏| 中西区| 怀化市| 石柱| 荣成市| 罗甸县| 通河县| 大埔县| 临沧市| 甘泉县| 长宁区| 枣庄市| 河池市| 宁陵县| 德兴市| 驻马店市| 金乡县| 阿瓦提县| 呼伦贝尔市| 伊川县| 屏南县| 北票市| 西乌| 鹤山市| 蓬溪县| 龙泉市| 湟中县| 贺州市| 峨边| 滨州市| 炉霍县| 双江|