CookieContainer.SetCookies仅设置第一个

Ste*_*eve 2 c#

根据MSDN CookieContainer.SetCookies应该

将一个或多个cookie的Cookie实例从HTTP cookie标头添加到CookieContainer以获取特定URI

这意味着它应该适用于多个cookie,但是当我这样做时

_cookieContainer.SetCookies(new Uri("http://localhost"), "a=a;b=b");
Run Code Online (Sandbox Code Playgroud)

然后尝试使用.检索cookie

_cookieContainer.GetCookies(new Uri("http://localhost"));
Run Code Online (Sandbox Code Playgroud)

我只得到一个cookie条目 a=a

我认为可能是cookie头格式错误,所以我手动添加两个cookie使用.Add方法,后来尝试通过调用获取头.GetCookieHeader,我得到完全相同的字符串"a=a;b=b".

我错过了什么,或者我发现了一个.NET错误?我目前正在使用

VS2015 - v14.0.23107.0,
.NET - 4.6 4.6.00081

Kap*_*pol 7

为什么不尝试以与MSDN在文档站点上建议的方式相同的方式传递第二个参数SetCookies:

cookieHeader

键入:System.String

HTTP服务器返回的HTTP set-cookie标头的内容,其中Cookie实例以逗号分隔.

_cookieContainer.SetCookies(new Uri("http://localhost"), "a=a,b=b");
Run Code Online (Sandbox Code Playgroud)

  • 尽管 HTTP 标头使用分号,但知道为什么它是逗号吗? (3认同)