OkHttp快取max age詳解補充

2021-08-26 12:41:43 字數 2922 閱讀 4052

此前編譯過一篇博文okhttp快取max-age和max-stale詳解,在裡面提到過乙個問題,就是max-age在request和response中設定效果是否一樣,下面將會從實驗測試的角度來對這個引數進行說明。

2.1 實驗測試**說明

okhttp的構建部分

const_10 * const_1024 * const_1024)); //設定快取

builder.connecttimeout(default_timeout, timeunit.seconds);

builder.writetimeout(default_timeout, timeunit.seconds);

builder.readtimeout(default_timeout, timeunit.seconds);

interceptor interceptor = new netcacheinterceptor(); //定義response中的max-age快取資訊

builder.addinterceptor(new localcacheinterceptor()); //設定request中的max-age快取資訊

builder.addnetworkinterceptor(interceptor);

builder.addinterceptor(new logginginterceptor());

factory = builder.build();netcacheinterceptor設定response中的max-age

public

class

netcacheinterceptor

implements

interceptor

}

localcacheinterceptor設定request中的max-age資訊

public

class

localcacheinterceptor

implements

interceptor

}

網路請求的**

//每隔3秒進行一次網路請求

observable.interval(3, timeunit.seconds).subscribe(

new action1()

},new action1()

});}}}

);

2.2 實驗測試

2.2.1 僅在request中設定max-age

okhttpclient.builder builder = new okhttpclient.builder();

builder.cache(new cache(context.getcachedir(),

const_10 * const_1024 * const_1024)); //設定快取

builder.connecttimeout(default_timeout, timeunit.seconds);

builder.writetimeout(default_timeout, timeunit.seconds);

builder.readtimeout(default_timeout, timeunit.seconds);

interceptor interceptor = new netcacheinterceptor(); //定義response中的max-age快取資訊

builder.addinterceptor(new localcacheinterceptor()); //設定request中的max-age快取資訊

const_10 * const_1024 * const_1024)); //設定快取

builder.connecttimeout(default_timeout, timeunit.seconds);

builder.writetimeout(default_timeout, timeunit.seconds);

builder.readtimeout(default_timeout, timeunit.seconds);

interceptor interceptor = new netcacheinterceptor(); //定義response中的max-age快取資訊

// builder.addinterceptor(new localcacheinterceptor()); //設定request中的max-age快取資訊

builder.addnetworkinterceptor(interceptor);

builder.addinterceptor(new logginginterceptor());

factory = builder.build();

okhttp配置快取策略 2 okhttp響應快取

1.okhttp框架擁有很好的快取策略cachestrategy,並使用disklrucache技術對響應的內容進行儲存。要建立快取,要有以下條件 可以讀寫的快取目錄 快取大小的限制 快取目錄應該是私有的,不信任的程式不能讀取快取內容 全域性使用者唯一的快取訪問例項。okhttp框架全域性必須只有乙...

仿okhttp快取策略的資料快取

之前在面試中經常被問到看過哪些優秀的原始碼,吧啦吧啦說一大堆,問學到了哪些東西,吧啦吧啦又說一大堆,但是其實都是紙上談兵,並未結合到專案中。比如說okhttp的快取策略,okhttp的快取做的還是不錯的,有快取沒有過期就直接用,有快取過期了先用過期的,然後再聯網儲存,沒有快取再去聯網請求,之前也寫過...

okhttp快取問題詳細講解

1.在okhttpclient構造時設定快取路徑 2.構造request時配置快取策略 request request new request.builder url build client.newcall request enqueue new callback override public ...