我有这个功能来检索CookieContainer中的响应cookie(this.cookies)
private void getCookies(string url)
{
// request
HttpWebRequest request = CreateWebRequestObject(url);
request.CookieContainer = this.cookies;
request.Headers.Add("Accept-Encoding", "gzip, deflate");
request.Headers.Add("Accept-Language", " es-MX,es;q=0.8,en-us;q=0.5,en;q=0.3");
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.Method = "GET";
request.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2";
// response
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
foreach (Cookie c in response.Cookies)
{
this.cookies.Add(new Cookie(c.Name, c.Value, c.Path, c.Domain));
}
}
}
但是,当我在Fiddler中调试请求时,我得到了这个:
为什么Cookie中有“$”?
根据MSDN
public Cookie(字符串名称,字符串值,字符串路径,字符串 域名)
命名 键入:System.String Cookie的名称。不得在名称内使用以下字符:等号,分号,逗号,换行符(\ n),返回(\ r), tab(\ t)和空格字符。美元符号字符(“$”)不能 成为第一个角色。
如何删除此字符?