2014-07-15 33 views
1

我試圖向請求發送一個cookie到一個Asp.net頁面。據我所知,它期望cookie值不被編碼。如果我對這個值進行編碼,它不會註冊它。爲HttpWebRequest cookie發送逗號值

CookieContainer不會讓我添加非編碼值,但它。我似乎無法找到周圍工作...

我的代碼基本上

HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(@"http:\\whatever"); 
string cookieName = "whatevername"; 
string cookieValue = "version=1&Type=a,b,c,d,e,f"; 
Cookie cook = new Cookie(cookieName, cookieValue, "/", "mypage"); 
CookieContainer cookies = new CookieContainer(); 
cookies.Add(cook); 
request.CookieContainer = cookies; 

這將引發CookieException說:「The 'Value'='version=1&Type=a,b,c,d,e,f' part of the cookie is invalid.

+0

爲什麼不添加'version'和'Type'兩個單獨的值? –

+0

問題不在'&',它是用逗號。 – James

回答

0

你可以嘗試UrlEncoding值。

HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(@"http:\\whatever"); 
string cookieName = "whatevername"; 
string cookieValue = "version=1&Type=a,b,c,d,e,f"; 
Cookie cook = new Cookie(cookieName, Server.UrlEncode(cookieValue), "/", "mypage"); 
CookieContainer cookies = new CookieContainer(); 
cookies.Add(cook); 
request.CookieContainer = cookies; 
+0

我已經嘗試過'HttpUtility.UrlEncode',它不工作,因爲顯然在asp.net中你不解碼它們(參見http://stackoverflow.com/questions/1136405/handling-a-comma-inside-a- cookie的值使用漁網-C-系統淨cookie中)。 – James