根据MSDN CookieContainer.SetCookies
应该
从HTTP cookie添加一个或多个Cookie的Cookie实例 标题为CookieContainer的特定URI
这意味着它应该适用于多个cookie,但是当我这样做时
_cookieContainer.SetCookies(new Uri("http://localhost"), "a=a;b=b");
以后尝试使用
检索Cookie_cookieContainer.GetCookies(new Uri("http://localhost"));
我只获得一个a=a
我认为可能是Cookie标头格式错误,所以我使用.Add
方法手动添加了两个Cookie,稍后通过调用.GetCookieHeader
尝试获取标头,我得到完全相同字符串"a=a;b=b"
。
我是否遗漏了任何内容,或者我发现了一个.NET错误?我目前正在使用
VS2015 - v14.0.23107.0,
.NET - 4.6 4.6.00081
答案 0 :(得分:5)
为什么不尝试以与MSDN在SetCookies
的文档网站上建议的方式相同的方式传递第二个参数:
cookieHeader
输入:System.String
HTTP服务器返回的HTTP set-cookie标头的内容,Cookie实例由逗号分隔。
_cookieContainer.SetCookies(new Uri("http://localhost"), "a=a,b=b");
答案 1 :(得分:0)
您使用分号分隔Cookie,但MSDN docs状态:
SetCookies从HTTP cookie头中提取所有HTTP cookie,为每个cookie构建一个Cookie,然后将每个Cookie添加到与URI关联的内部CookieCollection中。 cookieHeader 字符串中的HTTP Cookie必须以逗号分隔。
(强调补充)