欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

OkHttp3中默認(rèn)不保持Cookie的解決方法

 更新時(shí)間:2018年04月20日 11:39:53   作者:云之外  
這篇文章主要給大家介紹了關(guān)于OkHttp3中默認(rèn)不保持Cookie的解決方法,文中先對(duì)OKhttp3中的cookies進(jìn)行了簡(jiǎn)單的介紹,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

OKhttp3中的cookies

OkHttpClient client = new OkHttpClient().newBuilder().cookieJar(new CookieJar() {

   private final HashMap<String, List<Cookie>> cookieStore = new HashMap<>();

   @Override
   public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
    cookieStore.put(url.host(), cookies);
   }

   @Override
   public List<Cookie> loadForRequest(HttpUrl url) {
    List<Cookie> cookies = cookieStore.get(url.host());
    return cookies != null ? cookies : new ArrayList<Cookie>();
   }
  }).build();

主要就是實(shí)現(xiàn)CookieJar接口,在OkHttpClient構(gòu)建的時(shí)候。

OkHttp3 默認(rèn)不保持 Cookie 的解決方案

OkHttp3 聲明的 OkHttpClient 默認(rèn)不保存 Cookie,不發(fā)送 Cookie。在實(shí)際開發(fā)中會(huì)丟失 Session ID 造成服務(wù)器無法判斷當(dāng)前用戶的登錄狀態(tài)。查閱多方資料后給出解決辦法。

三點(diǎn)概念:

首次與服務(wù)器建立連接時(shí),服務(wù)器生成 SessionID 標(biāo)記當(dāng)前連接會(huì)話。(HTTP 是無連接協(xié)議)
客戶端 request 時(shí),將 帶有 SessionID 的 Cookie 發(fā)送至服務(wù)器,以此作為會(huì)話標(biāo)記。
在實(shí)際使用 OkHttp3 時(shí),通常一個(gè) Application 只使用 一個(gè) OkHttpClient 實(shí)例進(jìn)行連接。

解決方案:

構(gòu)建 CookieJar 對(duì)象,并重寫 saveFromResponse 和 loadFromRequest 方法。

使用構(gòu)建了 CookieJar 的 OkHttpClient 實(shí)例收發(fā) Http 連接。

本程序中使用了單例模式構(gòu)造 OkHttpClient 實(shí)例,Cookie 持久化代碼如下:

mOkHttpClient = new OkHttpClient.Builder()
    .cookieJar(new CookieJar() {
     private final HashMap<String, List<Cookie>> cookieStore = new HashMap<>();

     @Override
     public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
      cookieStore.put(url.host(), cookies);
     }
     @Override
     public List<Cookie> loadForRequest(HttpUrl url) {
      List<Cookie> cookies = cookieStore.get(url.host());
      return cookies != null ? cookies : new ArrayList<Cookie>();
     }
    }).build();

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論