这是MSDN中的说明:
异常 | 条件 |
---|---|
CookieException |
name 为 null 或空字符串 ("")。 - 或 - name 包含未经授权的字符。 使用以下字符之一将会导致异常:
value 为 null,或者包含分号 (;) 或逗号 (,),而它们不包含在转义的双引号中。 |
逗号字符保留用作同一行上各个 Cookie 之间的分隔符。 下面的示例演示如何在 value 中使用逗号。
System.Net.Cookie cookie = new System.Net.Cookie("cookieID", "\"123,456\"");
第一种方法:</pre><pre name="code" class="csharp">string cookieStr = webBrowser1.Document.Cookie; if (!cookieStr.Contains("JSESSION_ID")) { return; } string[] cookstr = cookieStr.Split(';'); foreach (string str in cookstr) { string[] cookieNameValue = str.Split('='); string cookieName = cookieNameValue[1].Trim().ToString(); cookieName = cookieName.Replace(",", "%2c"); Cookie ck = new Cookie(cookieNameValue[0].Trim().ToString(), cookieName); ck.Domain = webBrowser1.Document.Domain; myCookieContainer.Add(ck); }
string cookieStr = webBrowser1.Document.Cookie; if (!cookieStr.Contains("JSESSION_ID")) { return; } string[] cookstr = cookieStr.Split(';'); foreach (string str in cookstr) { string[] cookieNameValue = str.Split('='); string cookieName = cookieNameValue[1].Trim().ToString(); if (cookieName.Contains(",")) { cookieName = "\"" + cookieName + "\""; } Cookie ck = new Cookie(cookieNameValue[0].Trim().ToString(), cookieName); ck.Domain = webBrowser1.Document.Domain; myCookieContainer.Add(ck); }