我想通過刪除由其創建的Cookie來註銷我的Twitter帳戶。我能夠以檢索由Twitter使用代碼創建的cookie:如何通過刪除Cookie來註銷Twitter帳戶?
String twit_cookie = getCookie ("http://www.twitter.com");
但我怎麼只能刪除由Twitter創建的cookie,因爲removeAllCookie()刪除瀏覽器中創建的所有Cookie。我怎樣才能通過URL或名稱刪除特定的Cookie?
請幫忙...
我想通過刪除由其創建的Cookie來註銷我的Twitter帳戶。我能夠以檢索由Twitter使用代碼創建的cookie:如何通過刪除Cookie來註銷Twitter帳戶?
String twit_cookie = getCookie ("http://www.twitter.com");
但我怎麼只能刪除由Twitter創建的cookie,因爲removeAllCookie()刪除瀏覽器中創建的所有Cookie。我怎樣才能通過URL或名稱刪除特定的Cookie?
請幫忙...
CookieManager類有一個方法setCookie。你有沒有嘗試過這樣的:
setCookie("http://www.twitter.com", null);
或許
setCookie("http://www.twitter.com", "auth_token=''");
您可以使用該方法CookieManager#setCookie(String url, String value)。正如文檔中所述:
爲給定的URL設置一個cookie。任何具有相同主機,路徑和名稱的現有cookie都將被替換爲新的cookie。
「最清晰的」方法是將由twitter創建的所有Cookie設置爲過期(過去的時間)。代碼從this answer幾乎是正確的,除了日期是未來。
修改後的代碼:
final String domain = "http://www.twitter.com";
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
String cookiestring = cookieManager.getCookie(domain); //get all cookies
String[] cookies = cookiestring.split(";");
for (int i=0; i<cookies.length; i++) {
String[] cookieparts = cookies[i].split("="); //split cookie into name and value etc.
// set cookie to an expired date
cookieManager.setCookie(domain, cookieparts[0].trim()+"=; Expires=Wed, 31 Dec 2000 23:59:59 GMT");
}
CookieSyncManager.getInstance().sync(); //sync the new cookies just to be sure
什麼這個 ? 「所設置的cookie一定不能過期,不能是會話cookie,否則會被忽略。」 http://developer.android.com/reference/android/webkit/CookieManager.html#setCookie(java.lang.String,java.lang.String) – trante 2014-08-15 18:06:21
@trante [This answer](http:// stackoverflow。 com/a/11621738/2829009)表示文檔錯誤,並且與過期的cookie一起工作。如果它不起作用,請將cookie設置爲將來幾秒鐘,以便它有效,但在短時間後過期。 – Manu 2014-08-16 08:57:10
結帳這裏的答案:http://stackoverflow.com/questions/2834180/how-to-remove-cookies-using-cookiemanager-for-a-specific-domain – 2014-08-09 00:03:48