2011-07-04 43 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