最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2018年04月20日 11:39:53   作者:云之外  
這篇文章主要給大家介紹了關(guān)于OkHttp3中默認(rèn)不保持Cookie的解決方法,文中先對OKhttp3中的cookies進(jìn)行了簡單的介紹,對大家的學(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 對象,并重寫 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é)

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

相關(guān)文章

最新評論

遂昌县| 密山市| 黑山县| 台北市| 丹阳市| 久治县| 洞头县| 三原县| 南昌市| 保山市| 大兴区| 黄浦区| 武穴市| 林周县| 和林格尔县| 友谊县| 电白县| 临沧市| 武功县| 墨竹工卡县| 邵阳市| 绿春县| 西城区| 柳林县| 阿克| 五大连池市| 当阳市| 筠连县| 平果县| 陆良县| 安塞县| 景洪市| 江北区| 沂源县| 岳西县| 永和县| 徐汇区| 玛多县| 茂名市| 临西县| 正安县|