當前位置:首頁 » 安卓系統 » androidcookie

androidcookie

發布時間: 2023-03-17 17:01:21

⑴ android中怎麼清除cookie

android中使用CookieSyncManager

CookieSyncManager.createInstance(getApplicationContext());
CookieManager.getInstance().removeAllCookie();

⑵ 關於Android的okHttp+webview的cookie跨域問題

一個原生電商項目,可能會需要接入一個合作方的H5項目(域名不一樣),這就可燃帶能涉及到一下信息的共享的問題,信息共享的方式有很多種,最常用的就是cookie

比如購物車,登陸這樣的信息和狀態的維護,都會使用cookie的方式

原生項目一般涉及到雀段簡2個方面:網路框架okHttp3 + Webview

okHttp3  =>   一般存取以HttpUr(協議+域名+埠)的方式去存取cookie

取 =>loadForRequest(httpUrl)  

存 => saveFromResponse(httpUrl,cookies)

如果要使得不同的域名的介面都能拿到cookie信息,需要以該目標鏈接HttpUr保存一次cookie

webview一般使用域名就可以,頃褲下面的url只代表域名

⑶ android 怎麼判斷cookie有沒有到期

Cookie實際上是一小段文本信息。在Web程序中,客戶端瀏覽器請求伺服器,如果伺服器需要記錄該用戶狀態,就使用response向客戶端瀏覽器頒發一個Cookie。客戶端瀏覽器會把Cookie保存起來。當瀏覽器再請求該網站時,瀏覽器把請求的網址連同該Cookie一同提交給伺服器。伺服器檢查該Cookie,以此來辨認用戶狀態。伺服器還可以根據需要修改Cookie的內容。
Cookie的失效時間由maxAge屬性決定,單位為秒(Second)。Cookie中通過getMaxAge()方法與setMaxAge(int maxAge)方法來讀寫maxAge屬性。從客戶端讀取Cookie時,包括maxAge在內的其他屬性都是不可讀的,也不會提交。瀏覽器提交Cookie時只會提交name與value屬性。maxAge屬性只被瀏覽器用來判斷Cookie是否過期。
對於android客戶端,登錄成功後伺服器會向客戶端頒發一個Cookie,客戶端將Cookie持久化到本地。當客戶端再次請求該伺服器時,客戶端會把請求的網址連同該Cookie一同提交給伺服器。伺服器檢查該Cookie,以此來辨認用戶狀態。對於Cookie的有效期,是在客戶端本地判斷的,Cookie有效則可以向伺服器進行請求;Cookie失效則需重新登錄獲取新的Cookie之後再與伺服器進行交互。

⑷ android okhttp3帶cookie請求

Request經常都要攜帶Cookie,上面說孝毀過request創建時可以通過header設置參數,Cookie也是參數之一。就像下面這樣:

然後可以從返回巧纖備的response里得到新的Cookie,你可能得想辦法把豎槐Cookie保存起來。
但是OkHttp可以不用我們管理Cookie,自動攜帶,保存和更新Cookie。
方法是在創建OkHttpClient設置管理Cookie的CookieJar

⑸ Android開發中怎樣使用cookieManager來管理cookie

前幾天剛研究過這個東西 我是用webview載入的頁面 我的做法就是 發送post請求登陸的時候 伺服器端如果登陸成功設置session 然後客戶端設置下cookies(這個主要告中伏是用那個JSESSIONID,因為客戶端和伺服器端識別是同一會話的方法就是這個JSESSIONID),設置cookies的方法 就參照6樓的寫法,然後用webview如下代碼設置主界面的cookies: Cookie sessionCookie = Httprequset.appCookie; //這里的cookie就是上面保存的cookie CookieSyncManager.createInstance(getApplicationContext()); CookieManager cookieManager = CookieManager.getInstance(); String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "培明 ;domain=" +sessionCookie.getDomain(); cookieManager.setCookie(url, cookieString); CookieSyncManager.getInstance().sync(); //載入地址 mWebView.loadUrl(url);這樣如果登陸成功的話你就可以在載入地址上直接獲取你設置session了 否則的話session取不到不知襪攜道能否幫到您! 查看原帖>>

⑹ 限制用戶在不同Android設備上同時登錄App

不允許用戶同時登錄多個設備,假設目前用戶a,在設備1登錄;然後用弊稿戶a 又在設備b登錄,此時需要把設備1的用戶踢下線。

1.在用戶登錄介面里,為該次請求的客戶端創建一個session,並且生成一個與此 session 相關聯的 session id,保存起來,當該用戶再次登錄的時候,生成一個與此 session 相關聯的 session id,與之前保存起來的對比,如果不一致將新的session id 保存下來。
2.提供一個判斷用戶是否登錄的介面,在客戶端後台服務里開始一個線程定時去請求,生成一個與此 session 相關聯的 session id,再去查找時候存在該sessionid,如果不存在告訴客戶端,沒有用戶在線,否則有用戶在線。
3.如果返回的session 有值,保持登錄狀態,否則退出登錄。

Session 機制是一種伺服器端的機制,伺服器使用一種類似於散列表的結構(也可租喊孝能就是使用散列表)來保存信息。
當程序需要為某個客戶端的請求創建一個 session 的時候,伺服器首先檢查這個客戶端的請求里是否已包含了一個 session 標識 - 稱為 session id,如果已包含一個session id 則說明以前已經為此客戶端創建過 session,伺服器就按照 session id 把這個 session 檢索出來使用(如果檢索不到,可能會新建一個),如果客戶端請求不包含 session id,則為此客戶端創建一個 session 並且生成一個與此 session 相關聯的 session id,session id的值應該是一個既不會重復,又不容易被找到規律以仿造的字元串,這個 session id將被在本次響應中返回給客戶端保存。

Session的實現方式
1 ) 使用Cookie來實現
伺服器給每個 Session 分配一個唯一的 JSESSIONID,並通過 Cookie 發送給客戶端。
當客戶端發起新的請求的時候,將在 Cookie 頭中攜帶滲橡這個 JSESSIONID。這樣伺服器能夠找到這個客戶端對應的 Session。
2 )使用URL回顯來實現
URL回寫 是指伺服器在發送給瀏覽器頁面的所有鏈接中都攜帶 JSESSIONID 的參數,這樣客戶端點擊任何一個鏈接都會把 JSESSIONID 帶給伺服器。如果直接在瀏覽器中輸入 url 來請求資源,Session 是匹配不到的。Tomcat 對 Session 的實現,是一開始同時使用 Cookie 和 URL回寫機制,如果發現客戶端支持 Cookie,就繼續使用 Cookie,停止使用 URL回寫。如果發現 Cookie 被禁用,就一直使用 URL回寫。(jsp 開發處理到 Session 的時候,對頁面中的鏈接記得使用 response.encodeURL() )。

在解決問題前先了解下 Session 與 Cookie:
Cookie 和 Session都為了用來保存狀態信息,都是保存客戶端狀態的機制,它們都是為了解決 HTTP 無狀態的問題所做的努力。
Session 可以用 Cookie 來實現,也可以用 URL回寫的機制來實現。
Cookie和Session有以下明顯的不同點:
1)Cookie 將狀態保存在客戶端,Session 將狀態保存在伺服器端;
2)Cookies 是伺服器在本地機器上存儲的小段文本並隨每一個請求發送至同一個伺服器。網路伺服器用 HTTP 頭向客戶端發送 cookies,在客戶端,瀏覽器解析這些 cookies 並將它們保存為一個本地文件,它會自動將同一伺服器的任何請求縛上這些 cookies。
3)Session 是針對每一個用戶的,變數的值保存在伺服器上,用一個 sessionID 來區分是不同用戶 session 變數,這個值是通過用戶的瀏覽器在訪問的時候返回給伺服器,當客戶禁用 cookie 時,這個值也可能設置為由 get 來返回給伺服器;
4)就安全性來說:當你訪問一個使用 session 的站點,同時在自己機器上建立一個 cookie,建議在伺服器端的 SESSION 機制更安全些.因為它不會任意讀取客戶存儲的信息。

客戶端用的網路框架是okhttp3,在開發中發現,服務端沒有創建session,解決方法是將服務端返回的cookie 保存下來,然後每次發起網路請求的時候為將保存的cookie 添加到head 中。

⑺ Android開發中怎樣使用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);
}
}

熱點內容
android交叉編譯環境 發布:2024-04-20 13:00:10 瀏覽:182
伺服器怎麼搭建中間層 發布:2024-04-20 12:40:02 瀏覽:96
如何獲取網路的賬號和密碼 發布:2024-04-20 12:34:06 瀏覽:919
安卓現在哪個品牌用得最久 發布:2024-04-20 12:00:50 瀏覽:276
小拇指演算法 發布:2024-04-20 11:55:28 瀏覽:954
域名查看雲伺服器ip地址 發布:2024-04-20 11:49:17 瀏覽:551
反編譯軟體id 發布:2024-04-20 10:29:49 瀏覽:44
視頻太長怎麼壓縮發微信 發布:2024-04-20 10:00:14 瀏覽:384
顯卡怎麼保存配置 發布:2024-04-20 09:28:52 瀏覽:596
校園交易網站源碼 發布:2024-04-20 09:18:54 瀏覽:701