Android中Volley框架下保持會(huì)話方法
公司經(jīng)理把我拉出來(lái),死馬當(dāng)活馬醫(yī),做一個(gè)安卓app,作為剛畢業(yè)幾個(gè)月且只是培訓(xùn)了幾個(gè)月的小白來(lái)說(shuō),這無(wú)疑是一個(gè)非常大的挑戰(zhàn),當(dāng)然最大的挑戰(zhàn)不是這個(gè),最大的挑戰(zhàn)時(shí)兩個(gè)周做出來(lái)。這是最蛋疼的,說(shuō)實(shí)話,對(duì)于有兩三年的開(kāi)發(fā)經(jīng)驗(yàn)的人來(lái)說(shuō),兩個(gè)周開(kāi)發(fā)一個(gè)項(xiàng)目很簡(jiǎn)單,說(shuō)不定還有很多時(shí)間用來(lái)干別的。
于是一上來(lái)就把自己給難住了,登陸還是很好做的,只要驗(yàn)證返回的信息就可以跳轉(zhuǎn),但是在接下來(lái)后面的數(shù)據(jù)接口連接的時(shí)候各種報(bào)錯(cuò),整了兩天,查了很多信息,還接受了公司老人的嘲諷和謾罵終于做出來(lái)了。
這個(gè)是基于session的一個(gè)網(wǎng)絡(luò)會(huì)話,手機(jī)app給服務(wù)器發(fā)送登陸請(qǐng)求的時(shí)候,服務(wù)器返回的網(wǎng)絡(luò)response(networkRespone)的頭(head)里面存放著你想要的sessionid。這個(gè)時(shí)候只要重寫parseNetworkResponse就可以了:
第一步: 在errorLitener后面添加這個(gè)方法獲取sessionid
{ protected Response<String> parseNetworkResponse(NetworkResponse response){ Response<String> r = super.parseNetworkReponse(response); Map<String,String> head = response.headers; String cookies = head.get("Set-Cookie"); Contant.cookie = cookies.substring(0,cookies.indexOf(";")); return r; } };
以上是寫在最初登陸時(shí)候的頁(yè)面的。
第二步:
Contant.cookie 這個(gè)是自己寫的一個(gè)全局變量,寫起來(lái)很簡(jiǎn)單 public class Contant{ public static volatile String cookie = null; }
第三步:在發(fā)送數(shù)據(jù)請(qǐng)求的時(shí)候發(fā)送session
StringRequest request = new StringRequest(Request.Method.GET, url, listener, errorListener) { public Map<String, String> getHeaders() throws AuthFailureError { if (Contant.localCookie != null && Contant.localCookie.length() > 0) { HashMap<String, String> headers = new HashMap<String, String>(); headers.put("cookie", Contant.Cookie); Log.d("調(diào)試", "headers--" + headers); return headers; }else { return super.getHeaders(); } } };
這里面的listener和errorlistener擴(kuò)展寫,寫在外面也行,寫在這里面也可以,這樣就可以了
以上所述是小編給大家介紹的Android中Volley框架下保持會(huì)話方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Android 中Volley二次封裝并實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求緩存
- Android中volley封裝實(shí)踐記錄
- Android Volley框架全面解析
- Android Volley框架使用方法詳解
- Android的HTTP類庫(kù)Volley入門學(xué)習(xí)教程
- Android Volley框架使用源碼分享
- Android 開(kāi)發(fā)中Volley詳解及實(shí)例
- android 網(wǎng)絡(luò)請(qǐng)求庫(kù)volley方法詳解
- Android 網(wǎng)絡(luò)請(qǐng)求框架Volley實(shí)例詳解
- Android中volley封裝實(shí)踐記錄(二)
相關(guān)文章
Android?Studio?2022.1.1創(chuàng)建項(xiàng)目的Gradle配置問(wèn)題
這篇文章主要介紹了Android?Studio?2022.1.1創(chuàng)建項(xiàng)目的Gradle配置問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04Android應(yīng)用開(kāi)發(fā)的版本更新檢測(cè)升級(jí)功能實(shí)現(xiàn)示例
本文對(duì)Android版本更新的知識(shí)做全面的總結(jié),主要包括開(kāi)發(fā)中版本的設(shè)置,如何檢測(cè)本程序的版本,版本的更新判斷和顯示,新版本程序的安裝2022-04-04Android開(kāi)發(fā)之5.0activity跳轉(zhuǎn)時(shí)共享元素的使用方法
下面小編就為大家分享一篇Android開(kāi)發(fā)之5.0activity跳轉(zhuǎn)時(shí)共享元素的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Android XRecyclerView最簡(jiǎn)單的item點(diǎn)擊事件處理
這篇文章主要為大家詳細(xì)介紹了Android XRecyclerView最簡(jiǎn)單的item點(diǎn)擊事件處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12基于Android studio3.6的JNI教程之ncnn人臉檢測(cè)mtcnn功能
這篇文章主要介紹了基于Android studio3.6的JNI教程之ncnn之人臉檢測(cè)mtcnn功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03Android實(shí)戰(zhàn)打飛機(jī)游戲之實(shí)現(xiàn)主角以及主角相關(guān)元素(3)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)戰(zhàn)打飛機(jī)游戲之實(shí)現(xiàn)主角以及主角相關(guān)元素,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07正確在Flutter中添加webview實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了正確在Flutter中添加webview實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12