當前位置:首頁 » 安卓系統 » android瀏覽器cookie

android瀏覽器cookie

發布時間: 2022-04-27 18:20:24

1. 安卓手機(不是電腦)瀏覽器禁用cookie

是不是瀏覽器開啟了隱私模式,所以cookie禁止了

2. 手機怎麼開啟瀏覽器的cookie設置,安卓系統的uc


1、手機上打開UC瀏覽器,點擊界面底下三條橫線的菜單按鈕,在彈出來的窗口上點擊「設置」的按鈕。

手機UC瀏覽器是默認開啟cookies的,沒有專門開啟的功能,一般都是在清除記錄的時候,根據個人的需要是否勾選清除cookies的,方法如上。

3. 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之後再與伺服器進行交互。

4. andorid cookie為什麼不失效

什麼是持久化的和非持久化的Cookies
我們可以將cookies分成兩類:
(1) 持久化的cookies
(2) 非持久化的cookies
持久化的cookies:這可以被稱為永久性的cookies,它被存儲在客戶端的硬碟內,直到它們失效。持久化的cookies應該被設置一個失效時間。有時,它們會一直存在直到用戶刪除它們。持久化的cookies通常被用來為某個系統收集一個用戶的標識信息。
非持久化cookies:也可以被稱之為臨時性的cookies。如果沒有定義失效時間,那麼cookie將會被存儲在瀏覽器的內存中。我上面展示的例子就是一個非持久的cookies。
修改一個持久化的cookies與一個非持久化的cookies並沒有什麼不同。它們唯一的區別是——持久化的cookies有一個失效時間的設置。
Cookie持久化
HttpClient可以和任意物理表示的實現了CookieStore介面的持久化cookie存儲一起使用。默認的CookieStore實現稱為BasicClientCookie,這是憑借java.util.ArrayList的一個簡單實現。在BasicClientCookie對象中存儲的cookie當容器對象被垃圾回收機制回收時會丟失。如果需要,用戶可以提供更復雜的實現。

下載著重介紹在安卓中如何利用httpclient來實現對cookie的持久化操作:

一、請求網路獲取cookie
先看一下下面的代碼:
[java] view plain
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://www.hlovey.com");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
List<Cookie> cookies = httpclient.getCookieStore().getCookies();
Post模擬登錄
[java] view plain
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("id", userid));
formparams.add(new BasicNameValuePair("passwd", passwd));
UrlEncodedFormEntity entity;
try {
entity = new UrlEncodedFormEntity(formparams, mobileSMTHEncoding);
} catch (UnsupportedEncodingException e1) {
return 3;
}
httpPost.setEntity(entity);
httpPost.setHeader("User-Agent", userAgent);
HttpResponse response = httpClient.execute(httpPost);
二、保存cookie
保存cookie有兩種方式一種是資料庫,另一種是SharedPreferences,其中http://blog.csdn.net/junjieking/article/details/7658551是使用資料庫來保存的,這里我是使用SharedPreferences保存。
[java] view plain
package com.smthbest.smth.util;

import java.util.Locale;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import android.util.Log;

import org.apache.http.client.CookieStore;
import org.apache.http.cookie.Cookie;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.ConcurrentHashMap;

ic class PersistentCookieStore implements CookieStore {
private static final String LOG_TAG = "PersistentCookieStore";
private static final String COOKIE_PREFS = "CookiePrefsFile";
private static final String COOKIE_NAME_STORE = "names";
private static final String COOKIE_NAME_PREFIX = "cookie_";
private boolean omitNonPersistentCookies = false;

private final ConcurrentHashMap<String, Cookie> cookies;
private final SharedPreferences cookiePrefs;

/**
* Construct a persistent cookie store.
*
* @param context Context to attach cookie store to
*/
public PersistentCookieStore(Context context) {
cookiePrefs = context.getSharedPreferences(COOKIE_PREFS, 0);
cookies = new ConcurrentHashMap<String, Cookie>();

// Load any previously stored cookies into the store
String storedCookieNames = cookiePrefs.getString(COOKIE_NAME_STORE, null);
if (storedCookieNames != null) {
String[] cookieNames = TextUtils.split(storedCookieNames, ",");
for (String name : cookieNames) {
String encodedCookie = cookiePrefs.getString(COOKIE_NAME_PREFIX + name, null);
if (encodedCookie != null) {
Cookie decodedCookie = decodeCookie(encodedCookie);
if (decodedCookie != null) {
cookies.put(name, decodedCookie);
}
}
}

// Clear out expired cookies
clearExpired(new Date());
}
}

@Override
public void addCookie(Cookie cookie) {
if (omitNonPersistentCookies && !cookie.isPersistent())
return;
String name = cookie.getName() + cookie.getDomain();

// Save cookie into local store, or remove if expired
if (!cookie.isExpired(new Date())) {
cookies.put(name, cookie);
} else {
cookies.remove(name);
}

// Save cookie into persistent store
SharedPreferences.Editor prefsWriter = cookiePrefs.edit();
prefsWriter.putString(COOKIE_NAME_STORE, TextUtils.join(",", cookies.keySet()));
prefsWriter.putString(COOKIE_NAME_PREFIX + name, encodeCookie(new SerializableCookie(cookie)));
prefsWriter.commit();
}

@Override
public void clear() {
// Clear cookies from persistent store
SharedPreferences.Editor prefsWriter = cookiePrefs.edit();
for (String name : cookies.keySet()) {
prefsWriter.remove(COOKIE_NAME_PREFIX + name);
}
prefsWriter.remove(COOKIE_NAME_STORE);
prefsWriter.commit();

// Clear cookies from local store
cookies.clear();
}

@Override
public boolean clearExpired(Date date) {
boolean clearedAny = false;
SharedPreferences.Editor prefsWriter = cookiePrefs.edit();

for (ConcurrentHashMap.Entry<String, Cookie> entry : cookies.entrySet()) {
String name = entry.getKey();
Cookie cookie = entry.getValue();
if (cookie.isExpired(date)) {
// Clear cookies from local store
cookies.remove(name);

// Clear cookies from persistent store
prefsWriter.remove(COOKIE_NAME_PREFIX + name);

// We've cleared at least one
clearedAny = true;
}
}

// Update names in persistent store
if (clearedAny) {
prefsWriter.putString(COOKIE_NAME_STORE, TextUtils.join(",", cookies.keySet()));
}
prefsWriter.commit();

return clearedAny;
}

@Override
public List<Cookie> getCookies() {
return new ArrayList<Cookie>(cookies.values());
}

/**
* Will make PersistentCookieStore instance ignore Cookies, which are non-persistent by
* signature (`Cookie.isPersistent`)
*
* @param omitNonPersistentCookies true if non-persistent cookies should be omited
*/
public void setOmitNonPersistentCookies(boolean omitNonPersistentCookies) {
this.omitNonPersistentCookies = omitNonPersistentCookies;
}

/**
* Non-standard helper method, to delete cookie
*
* @param cookie cookie to be removed
*/
public void deleteCookie(Cookie cookie) {
String name = cookie.getName();
cookies.remove(name);
SharedPreferences.Editor prefsWriter = cookiePrefs.edit();
prefsWriter.remove(COOKIE_NAME_PREFIX + name);
prefsWriter.commit();
}

/**
* Serializes Cookie object into String
*
* @param cookie cookie to be encoded, can be null
* @return cookie encoded as String
*/
protected String encodeCookie(SerializableCookie cookie) {
if (cookie == null)
return null;
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
ObjectOutputStream outputStream = new ObjectOutputStream(os);
outputStream.writeObject(cookie);
} catch (Exception e) {
return null;
}

return byteArrayToHexString(os.toByteArray());
}

/**
* Returns cookie decoded from cookie string
*
* @param cookieString string of cookie as returned from http request
* @return decoded cookie or null if exception occured
*/
protected Cookie decodeCookie(String cookieString) {
byte[] bytes = hexStringToByteArray(cookieString);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
Cookie cookie = null;
try {
ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
cookie = ((SerializableCookie) objectInputStream.readObject()).getCookie();
} catch (Exception exception) {
Log.d(LOG_TAG, "decodeCookie failed", exception);
}

return cookie;
}

/**
* Using some super basic byte array <-> hex conversions so we don't have to rely on any
* large Base64 libraries. Can be overridden if you like!
*
* @param bytes byte array to be converted
* @return string containing hex values
*/
protected String byteArrayToHexString(byte[] bytes) {
StringBuilder sb = new StringBuilder(bytes.length * 2);
for (byte element : bytes) {
int v = element & 0xff;
if (v < 16) {
sb.append('0');
}
sb.append(Integer.toHexString(v));
}
return sb.toString().toUpperCase(Locale.US);
}

/**
* Converts hex values from strings to byte arra
*
* @param hexString string of hex-encoded values
* @return decoded byte array
*/
protected byte[] hexStringToByteArray(String hexString) {
int len = hexString.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4) + Character.digit(hexString.charAt(i + 1), 16));
}
return data;
}
使用PersistentCookieStore來存儲cookie,首先最好把PersistentCookieStore放在Application獲取其他的地方,取得唯一實例,保存cookie是在登錄成功後,從下面代碼獲取保存。
[java] view plain
PersistentCookieStore myCookieStore = App.getInstance().getPersistentCookieStore();
List<Cookie> cookies = httpClient.getCookieStore().getCookies();
for (Cookie cookie:cookies){
myCookieStore.addCookie(cookie);
}
三、cookie的使用
[java] view plain
PersistentCookieStore cookieStore = new PersistentCookieStore(SmthBestApp.getInstance().getApplicationContext());
httpClient.setCookieStore(cookieStore);
HttpResponse response = httpClient.execute(httpget);
這樣就可以免再次登錄了。

5. 如何打開安卓手機的cookie功能

cookie功能就是避免你上網時重復輸入用戶名,密碼等內容。只有在瀏覽器里設置,以uc瀏覽器為例,在設置--安全設置--保存密碼--選擇自動保存密碼,然後再把經常瀏覽的網頁保存書簽就行了,當然有的網頁還會提示你「下次自動登錄''這個也要勾上。

6. android 瀏覽器cookie保存到哪裡

通過shareperfence保存,在瀏覽器的安裝文件下下面

7. 安卓cookie,cookie是什麼cookie是什麼

cookie只是網頁緩存,安卓是沒有cookie的。
比如一個網站xxxx.com,登陸頁為xxx.com/login.jsp,登陸方式為get,也就是xxx.com/login.jsp?username=xx&password=xx。登陸成功後從此頁都取得了Json值,但是用http來獲取另一個頁面的Json時就是null,這就是典型的cookie問題,因為這里每一個Json頁面都有cookie檢測。需要android請求的時候加上cookie在可以順利訪問

8. 手機瀏覽器cookie 怎麼查看

我就是用的UC瀏覽器的,就在頁面首頁能夠添加鏈接的,還有保存書簽或者是收藏也可以的,如果有了新的消息,也會都第一時間通知你的,挺不賴的,我經常用這個玩游戲,看小說,時間長了也沒有出現過卡機或者閃退的情況,特別的穩定,游戲的界,希望能幫到你!

9. 怎麼android-app讀取全部瀏覽器的cookie

是基於瀏覽器(Webview)還是單獨的App,單獨的app的話是要建一個cookie資料庫來存放這些數據

熱點內容
刷機安卓10狀態欄圓角如何修復 發布:2024-04-24 21:24:00 瀏覽:133
創建sql資料庫的命令是什麼 發布:2024-04-24 21:23:58 瀏覽:41
不是安卓該如何下載畫質怪獸 發布:2024-04-24 21:18:51 瀏覽:699
php載入網頁 發布:2024-04-24 21:15:20 瀏覽:159
遠程伺服器更換ip地址 發布:2024-04-24 21:14:43 瀏覽:526
什麼時候上線華為方舟編譯器軟體 發布:2024-04-24 21:10:21 瀏覽:629
安卓布局文件指的是哪個 發布:2024-04-24 21:08:05 瀏覽:887
磁帶存儲價格 發布:2024-04-24 21:04:22 瀏覽:900
誤刪除文件夾恢復工具 發布:2024-04-24 20:31:57 瀏覽:383
php介面編寫 發布:2024-04-24 20:31:06 瀏覽:68