如何通过删除Cookie来注销Twitter帐户?

问题描述:

我想通过删除由其创建的Cookie来注销我的Twitter帐户。我能够以检索由Twitter使用代码创建的cookie:如何通过删除Cookie来注销Twitter帐户?

String twit_cookie = getCookie ("http://www.twitter.com"); 

但我怎么只能删除由Twitter创建的cookie,因为removeAllCookie()删除浏览器中创建的所有Cookie。我怎样才能通过URL或名称删除特定的Cookie?

请帮忙...

+3

结帐这里的答案:http://*.com/questions/2834180/how-to-remove-cookies-using-cookiemanager-for-a-specific-domain – 2014-08-09 00:03:48

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 
+0

什么这个 ? “所设置的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

+0

@trante [This answer](http:// *。 com/a/11621738/2829009)表示文档错误,并且与过期的cookie一起工作。如果它不起作用,请将cookie设置为将来几秒钟,以便它有效,但在短时间后过期。 – Manu 2014-08-16 08:57:10