標籤:winform c# cookie cookies
這是MSDN中的說明:
異常 |
條件 |
CookieException |
name 為 null 或Null 字元串 ("")。 - 或 - name 包含未經授權的字元。 使用以下字元之一將會導致異常:
等號 (=)
分號 (;)
逗號 (,)
分行符號 (\n)
斷行符號符 (\r)
定位字元 (\t)
空格字元
貨幣符號 ($) 作為第一個字元
- 或 -
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); }
c# Cookies中不能包含逗號的解決方案