編輯:關於Android編程
因為最近有人問我怎麼保存HttpClient的Cookie, 所以這裡寫下, 順便記錄總結吧. 當然, 有Android網絡編程經歷的童鞋一看就懂喇~
就不多說了, 直接上代碼:
/** * 本地存儲Cookie * @param response */ private void saveCookies(HttpResponse response) { SharedPreferences preferences = getSharedPreferences(cookies, MODE_PRIVATE); ListtheCookies = client.getCookieStore().getCookies(); StringBuffer sb = new StringBuffer(); for(int k=0; k 設置Cookie:
String url = http://www.host.com/test; HttpGet get = new HttpGet(url); SharedPreferences sharedPreferences = getSharedPreferences(cookies, MODE_PRIVATE); get.setHeader(Cookie, sharedPreferences.getString(cookies, )); try { HttpResponse response = client.execute(get); HttpEntity entity = response.getEntity(); if(response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { Log.e(TAG, 保存失敗); //... } else { Log.e(TAG, 保存成功); //... } } catch (Exception e) { e.printStackTrace(); }
這樣即使退出應用後, 下次重新使用Cookie, 也可以避免一些重復的HTTp請求, 比如重復登錄什麼的. 但是要注意一個地方, Cookie是有效期的, 如果超過有效期再去使用就會無效, 需要重新登錄才能進行其他的操作. 如上面的代碼, 測試的Cookie有效時間是一個月.
所以在使用Cookie, 可以同時保存Cookie的有效期, 當然不保存也可以, 攜帶無效Cookie去訪問是服務器自然也會返回相應的提示, 根據提示響應即可. 另外唠嗑唠嗑, Cookie是一種很簡單的文本數據, 記錄了服務器和客戶端之間的訪問信息, 因此讀取和存儲, 管理的效率很高, 但不好的是不夠安全, 本地化存儲最好注意安全. 當然如果不是什麼很重要的數據, 並且有良好的使用習慣, 也沒什麼.
上面是針對Android開發環境中原生的HttpClient, 如果是使用其他Apache的HttpClient jar包, 比如commons-httpclient-3.1.jar. 可能會發現上面的方法使用起來並不方便, 那麼我們還可以模仿浏覽器處理Cookie的策略, 使用該jar包中特有的httpPost.setRequestHeader()方法添加訪問信息, 比如
httpPost.setRequestHeader(Host, host地址);
httpPost.setRequestHeader(Connection,Keep-Alive);
httpPost.setRequestHeader(Cookie, cookie);
httpPost.setRequestHeader(User-Agent, userAgent);
然後, 我們利用抓包工具, 隨便查看電腦浏覽器的某個請求, 能看到Headers中有類似格式的Cookie數據(下圖是訪問有道網站的請求):
可見, 這種處理方式跟浏覽器的策略是類似的.
看到支付寶的下拉刷新有一個笑臉的動畫,因此自己也動手實現一下。效果圖如下:一、總體思路1、靜態部分的笑臉。這一部分的笑臉就是一個半圓弧,加上兩顆眼睛,這部分比較簡單,用於
這篇山寨一個新版QQ的列表滑動刪除,上篇有說到QQ的滑動刪除,推測原理就是ListView本身每個item存在一個Button,只不過普通的狀態下隱藏掉了,檢測到向左的滑
碰到幾個問題,記錄一下,方便其他網友查詢 我是win7,64位系統,JAVA以前裝過,所以沒有安裝JDK直接下載Android Studio進行安裝,結果提示沒有安裝
Notification通知參考地址:http://developer.android.com/training/notify-user/index.html通知(Not