在項目開發中遇到一個問題,就是在登錄界面向服務器發送登錄請求后,然后就跳到一個與用戶訂閱有關的界面,然后,我想服務器發送的是正確的Url,用Log打印出返回結果,但是只有一個html的元素信息。通過對這個html的元素信息發的分析,與后臺同事分析發現,我的url沒有cookie 信息。在登錄界面向服務器發送的登錄驗證信息,但是服務器沒有存儲相應的用戶信息,就導致我登錄進去后向服務器索要用戶相關信息時,服務器判斷是一個新用戶,就返回了一個登錄界面hxml給我。所以就出現了開頭那個問題,那么怎樣才能解決這個問題呢,在網上查了很多資料,本人發現了一個簡單易用的方法,那就是用cookieManager來管理cookie。下面就是使用步驟;
1、首先? 在android應用程序開始的activity中的oncreaty()方法中注冊cookiemanager。如下:
~~~
<span style="font-size:18px;">//設置網絡請求cookie
CookieSyncManager.createInstance(this);</span>
~~~
2、然后在到網絡請求的那個類中設置如下? 設置和獲取cookie的方法
~~~
<span style="font-size:18px;"> protected String getCookie() {
CookieManager cookieManager = CookieManager.getInstance();
String cookie = cookieManager.getCookie("cookie");
if (cookie != null) {
return cookie;
} else {
return "";
}
}
protected void setCookie(String cookie) {
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie("cookie", cookie);
}</span>
~~~
? 3、最后一步就在urlConnection.openConnectin()的后面設置如下方法:
~~~
uc = (HttpURLConnection) new URL(url + "?" + paramsStr.toString()).openConnection();
uc.setRequestProperty("Cookie", getCookie());
~~~
~~~
<pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'宋體';font-size:12.0pt;"><span style="background-color:#344134;">setCookies</span>(uc.getHeaderFields())<span style="color:#cc7832;">;</span>
~~~
~~~
~~~
好了到這里就完成了cookie的設置
3. 過期按需處理一下
附1:cookie的獲取
~~~
response.headerFields = conn.getHeaderFields();
setCookies(response.headerFields);
~~~
~~~
/**
* 存儲cookie
* @param headerFields
*/
protected void setCookies(Map<String, List<String>> headerFields) {
if (null == headerFields) {
return;
}
List<String> cookies = headerFields.get(COOKIES_KEY);
if (null == cookies) {
return;
}
for (String cookie : cookies) {
setCookie(cookie);
}
}
~~~
- 前言
- viewpager
- 實現橫向listview(HorizontalListview)
- SimpleAdapter的使用
- 自定義android圓形ImageView
- 如何解決listView或scrollView+viewpager手勢沖突的問題
- EditText怎樣設置成下劃線
- Android中Display及DisplayMetrics理解
- android開發小經驗總結
- listView動態影藏顯現列表項中的多項部分
- Android開發中怎樣使用cookieManager來管理cookie
- 學習Android從0開始之背景篇-Android系統介紹
- 學習Android從0開始之開發工具篇-Android studio詳解
- 學習Android從0開始之基礎篇(1)-Android的四大基本組件
- 學習Android從0開始之基礎篇(2)-AndroidMainfest.xml文件詳解
- 學習Android從0開始之基礎篇(3)-視圖組件之布局管理器
- 學習Android從0開始之基礎篇(4)-TextView與EditText