1. 程式人生 > >OkHttp相關使用和設定快取

OkHttp相關使用和設定快取

public class BaseIntercepter implements Interceptor {
    private Context mContext;
    //快取有效期
    private static final long CACHE_STALE_SEC = 60 * 60 * 24 * 2;
    private String token;
    public BaseIntercepter(Context context) {
        mContext = context;
    }

    public void setToken(String token){
        this.token = token;
    }
    @Override
    public Response intercept(Chain chain) throws IOException {
        Request request = chain.request();

        LogUtil.e("net","網路:"+NetUtil.isConnected(mContext));
        if (!NetUtil.isConnected(mContext)){
            request = request.newBuilder().cacheControl(CacheControl.FORCE_CACHE)
                    .build();
        }
        request = request.newBuilder().header("token",token).build(); //加入token
        Response originalResponse = chain.proceed(request);

        if (NetUtil.isConnected(mContext)){
            //有網的直接讀取介面上@Headers的配置,實現某個請求的線上快取
            String cacheControl = request.cacheControl().toString();
            //有網的時候統一處理快取,將其超時時間這是為0:不需要快取
            //String cacheControl="Cache-Control:public,max-age=0"
            return originalResponse.newBuilder()
                    .header("Cache-Control", cacheControl)
                    .removeHeader("Pragma")//清除頭資訊,如果伺服器不支付回返回干擾資訊,不清除沒法生效
                    .build();
        }else{
            return originalResponse.newBuilder()
                    .removeHeader("Pragma")
                    .header("Cache-Control", "public, only-if-cached, max-stale=" + CACHE_STALE_SEC)
                    .build();
        }
    }
}

(3)設定攔截器

相關推薦

OkHttp相關使用設定快取

public class BaseIntercepter implements Interceptor { private Context mContext; //快取有效期 private static final long CACHE_STALE_SEC = 60 * 60 * 2

echarts相關屬性設定(2)--折線圖柱狀圖的結合使用

type:bar和line的組合 option = { { tooltip: { trigger: 'axis', axisPointer: { // type: 'shadow' }, // label: { // normal: { //

關於PHP應用中的APACHE的虛擬目錄虛擬主機相關設定

背景 有多個網站在同一個apache服務下,由於之前的服務已經部署了,不能大動,可是後來開發的php應用的路徑只能是根目錄,因為所有的頁面開發,程式中的跳轉路徑都是寫的/根目錄下的。怎麼辦呢?靜下心來想想,我這裡有兩個域名,有4個服務三個服務可以在同一個域名下,但是可以是二級目錄,另一個

javascript本地快取方案-- 儲存物件設定過期時間

cz-storage 解決問題 1. 前端js使用localStorage的時候只能存字串,不能儲存物件 cz-storage 可以儲存 object undefined number string 2. localStorage沒有過期時間 cz-storage 可以設定以天為單位的過期時間 安裝

okhttp設定快取

package com.sn.okhttp_8; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.

mac下java的安裝升級以及相關環境設定

安裝:brew cask install java8 如果存在多個java,可以設定JAVA_HOME指定java版本 開啟終端,執行/usr/libexec/java_home -V 檢視MAC下JDK預設安裝路徑,如圖顯示安裝了兩個版本。使用brew cask install java8安裝,預設是最

【Samba】共享伺服器的搭建相關許可權設定

1.檢視防護牆 [[email protected]~ ]# /etc/init.d/iptables status   iptables:Firewall is not running.   如果沒有關閉的話將他規則清空並關閉 iptables–F   

OpenGL(九) 三維混色深度快取設定

顏色的混合在現實世界中非常常見,例如隔著有色玻璃觀看物體,此時在觀察者嚴重呈現出來物體的顏色就是玻璃的顏色和物體的顏色的混合。 OpenGL在RGBA顏色模式下使用函式glenable(GL_BLEND)開啟混色功能,使用glDisable(GL_BLEDN)關閉混色功能。

Android OKHTTP 設定快取 斷網使用

OKHTTP 設定 GET 請求網路快取、快取時間以及斷網情況下的使用 基於 okhttp 3.9.1 測試 1. 設定本地本地快取的路徑、大小 public CacheResponse() { int cacheSize = 10

OkHttp簡單封裝以及快取設定

廢話不說,上程式碼:package com.jiyun.kaishu.Model;import android.content.Context;import android.util.Log;import java.io.File;import java.io.IOExcep

oracle中 常用的 join on 相關 集合運算的總結

nal 但是 總結 rom 全部 right light style 是把 sql常用聯合查詢的 join on 、 left join(左連接) 、 right join (右連接)、inner join (等值連接)以及常用的集合運算有:union、unionall、m

Linux日常管理技巧(3):Linux網絡相關防火墻

127.0.0.1 網絡 修改網卡 cal 網卡ip lis oot back col 一、Linux網絡相關 1. ifconfig 查看網卡IP ifconfig命令被用於配置和顯示Linux內核中網絡接口的網絡參數。用ifconfig命令配置的網卡信息,在網卡重啟後機

72.liunx網絡相關防火墻

記錄 mls misc red ots 輸出 ora rem collision ifconfig命令 命令描述 ifconfig命令被用於配置和顯示Linux內核中網絡接口的網絡參數。用ifconfig命令配置的網卡信息,在網卡重啟後機器重啟後,配置就不存在。要想將上述的

WPF 視窗控制代碼獲取設定

WPF 視窗控制代碼設定和獲取 1、控制代碼類 WHwnd.cs public class WHwnd { /// <summary> /// 主窗體控制代碼 /// </summar

webView中匯入百度地圖設定樣式

首先看效果圖: 怎樣獲取百度地圖api 第一種方式:找到“百度地圖api” 第二種方式:”百度地圖生成器“ 注意此方式生成的地圖使用的是百度地圖api1.1 設定地圖樣式 博主使用的是用百度地圖生成器生成的地圖,可以先儲存成html格式,檢視地圖

ubuntu 安裝redis設定

1 安裝 apt-get update apt-get install redis-server 2檢視是否啟動 ps -aux|grep redis   2.1 檢視版本 redis-server -v 3、通過命令列客戶端訪問Redis redis-

MyBatis一級快取二級快取詳解

一級快取   Mybatis對快取提供支援,但是在沒有配置的預設情況下,它只開啟一級快取,一級快取只是相對於同一個SqlSession而言。所以在引數和SQL完全一樣的情況下,我們使用同一個SqlSession物件呼叫一個Mapper方法,往往只執行一次SQL,因為使用SelSession第一次

伺服器新增賬戶設定區域網遠端登入

新增賬戶 1)新增使用者並建立home設定shell sudo useradd -m -s /bin/bash userName #sudo useradd username -d /home/username -m #不要用第二條命令,因為沒有指定shell。在使用MobaXter

16-golang的無快取channel快取channel

  我們先來看看無快取channel   func main() { var channel = make(chan int, 0) go func() { for i := 0; i <= 2; i++ {

【Hibernate(二)】持久化類、主鍵生成策略一級快取

1.2 持久化類的編寫規則 1.2.1 持久化類的概述 什麼是持久化類 持久化:將記憶體中的一個物件持久化到資料庫中過程。Hibernate框架就是用來進行持久化的框架。 持久化類:一個Java物件與資料庫的表建立了對映關係,那麼這個類在Hibernate中稱為是持久化類。