2011-07-04 39 views
1

我想設置一個cookie如下。android setcookie

CookieSyncManager.createInstance(context); 
CookieManager cookieManager = CookieManager.getInstance(); 
cookieManager.setCookie("http://wwww.mydomain.com", 
       "mycookie=123"; Domain=.mydomain"); 
CookieSyncManager.getInstance().sync(); 

當我從mydomain.com訪問頁面時,可以檢索到cookie。但是當我嘗試使用IP地址設置cookie時,該頁面無法檢索該cookie。

1)是否因爲我們只能使用主機名設置cookie? 2)爲什麼當我訪問使用IP地址的網站時,網站仍然能夠設置和檢索cookie?

回答

1

其一個域名通過規範:

域=域 可選。域屬性指定Cookie的有效域。明確指定的域必須始終以點開始 。

http://www.ietf.org/rfc/rfc2109.txt

的Android可能會從URL中提取域和路徑,但域必須是一個完全合格的域名。

此外,如果您通過IP訪問下面的語句是相關的:

域選擇源服務器的 完全限定主機名必須 域匹配的 cookie的域屬性。

答案是肯定的。

+0

嗯..不是很明白嗎?這意味着我只能使用域名設置cookie? – anewbie

+0

鑑於Android根據規範存儲cookie,是。你必須使用域名。但是,如果您的域名解析爲相同的主機,則您還可以在通過IP尋址的頁面上讀取cookie。 – Nappy