根据MSDN CookieContainer.SetCookies
应该
为一个HTTP Cookie中的一个或多个Cookie添加Cookie实例指向CookieContainer的特定URI的header
意味着它应该适用于多个cookie,但是当我这样做时
_cookieContainer.SetCookies(new Uri("http://localhost"), "a=a;b=b");
然后尝试使用
检索cookie_cookieContainer.GetCookies(new Uri("http://localhost"));
我只得到一个cookie条目a=a
我认为这可能是cookie头格式是错误的,所以我手动添加了两个cookie使用.Add
方法,后来尝试通过调用.GetCookieHeader
来获得头,我得到完全相同的字符串"a=a;b=b"
。
我错过了什么还是我只是发现了一个。net bug?我目前正在使用
VS2015 - v14.0.23107.0,
.NET - 4.6 4.6.00081
您为什么不尝试传递第二个参数的方式与MSDN在SetCookies
的文档站点上建议的相同:
cookieHeader
类型:系统。字符串
HTTP服务器返回的HTTP set-cookie报头的内容,其中Cookie实例用逗号分隔。
_cookieContainer.SetCookies(new Uri("http://localhost"), "a=a,b=b");
您正在使用分号来分隔cookie,但是MSDN文档状态为:
SetCookies从HTTP cookie头中提取所有HTTP cookie,为每个cookie构建一个cookie,然后将每个cookie添加到与URI关联的内部CookieCollection中。cookieHeader字符串中的HTTP cookie必须用逗号分隔。
(重点)