OkHttp3中默認不保持Cookie怎么辦-創(chuàng)新互聯(lián)

這篇文章主要介紹了OkHttp3中默認不保持Cookie怎么辦,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)公司致力于網(wǎng)站設(shè)計、成都網(wǎng)站制作,成都網(wǎng)站設(shè)計,集團網(wǎng)站建設(shè)等服務(wù)標準化,推過標準化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇創(chuàng)新互聯(lián)公司,就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

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();

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

OkHttp3 默認不保持 Cookie 的解決方案

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

三點概念:

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

解決方案:

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

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

本程序中使用了單例模式構(gòu)造 OkHttpClient 實例,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();

感謝你能夠認真閱讀完這篇文章,希望小編分享的“OkHttp3中默認不保持Cookie怎么辦”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!

網(wǎng)站標題:OkHttp3中默認不保持Cookie怎么辦-創(chuàng)新互聯(lián)
路徑分享:http://bm7419.com/article26/gdijg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司定制網(wǎng)站、微信公眾號、Google外貿(mào)建站、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)