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

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();感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“OkHttp3中默認(rèn)不保持Cookie怎么辦”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
網(wǎng)站標(biāo)題:OkHttp3中默認(rèn)不保持Cookie怎么辦-創(chuàng)新互聯(lián)
路徑分享:http://chinadenli.net/article26/gdijg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、定制網(wǎng)站、微信公眾號(hào)、Google、外貿(mào)建站、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容