編輯:關於Android編程
公司經理把我拉出來,死馬當活馬醫,做一個安卓app,作為剛畢業幾個月且只是培訓了幾個月的小白來說,這無疑是一個非常大的挑戰,當然最大的挑戰不是這個,最大的挑戰時兩個周做出來。這是最蛋疼的,說實話,對於有兩三年的開發經驗的人來說,兩個周開發一個項目很簡單,說不定還有很多時間用來干別的。
於是一上來就把自己給難住了,登陸還是很好做的,只要驗證返回的信息就可以跳轉,但是在接下來後面的數據接口連接的時候各種報錯,整了兩天,查了很多信息,還接受了公司老人的嘲諷和謾罵終於做出來了。
這個是基於session的一個網絡會話,手機app給服務器發送登陸請求的時候,服務器返回的網絡response(networkRespone)的頭(head)裡面存放著你想要的sessionid。這個時候只要重寫parseNetworkResponse就可以了:
第一步: 在errorLitener後面添加這個方法獲取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;
}
};
以上是寫在最初登陸時候的頁面的。
第二步:
Contant.cookie 這個是自己寫的一個全局變量,寫起來很簡單
public class Contant{
public static volatile String cookie = null;
}
第三步:在發送數據請求的時候發送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("調試", "headers--" + headers);
return headers;
}else {
return super.getHeaders();
}
}
};
這裡面的listener和errorlistener擴展寫,寫在外面也行,寫在這裡面也可以,這樣就可以了
以上所述是小編給大家介紹的Android中Volley框架下保持會話方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!
Android JSON原生解析的幾種思路,以號碼歸屬地,笑話大全,天氣預報為例演示
今天項目中要實現一個天氣的預覽,加載的信息很多,字段也很多,所以理清了一下思路,准備獨立出來寫一個總結,這樣對大家還是很有幫助的,老司機要開車了 涉及到網絡
Android中RecyclerView點擊Item設置事件
在上一篇Android RecylerView入門教程中提到,RecyclerView不再負責Item視圖的布局及顯示,所以RecyclerView也沒有為Item開放O
Android-支付寶支付
前言:緊接著上一篇的微信支付,本篇是集成支付寶支付,相對於微信支付,支付寶的集成就簡單了很多。話不多說,我們來看看怎麼簡單集成支付寶支付。1.看文檔:我們先要去螞蟻金服開
怎樣使用移動電源充電?移動電源怎樣用?
隨著手機的普及,移動電源也開始火起來了,非常的方便,出門沒電必備,能先將電充進移動電源裡,儲存在裡面,等手機沒電再用移動電源給手機充電。那麼小編現在就給大家