2012-02-29 61 views
7

我有這個功能中檢索響應餅乾在的CookieContainer(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)); 


    } 
    } 
} 

但是,當我調試小提琴手的要求,我得到這個:

enter image description here

爲什麼cookies中有「$」?

根據MSDN

公共曲奇(字符串名稱,字符串值,路徑字符串,字符串 域)

類型:System 一個Cookie的名稱。以下字符不得在名稱內使用:等號,分號,逗號,換行符(\ n),返回(\ r), 選項卡(\ t)和空格字符。美元符號字符(「$」)不能爲 成爲第一個字符。

如何刪除此字符?

+0

事情是否壞了?你有問題嗎? – asawyer 2012-02-29 23:16:34

+0

我想將$ Domain替​​換爲Domain等 – auraham 2012-02-29 23:18:32

+0

如果您更改收到的Cookie,您是否能夠基於這些Cookie正確創建新的請求? – 2012-02-29 23:19:43

回答

6

您看到的$不是的名稱的Cookie;它是與Cookie關聯的屬性

RFC 2109處理HTTP狀態管理;第4.4節具體涉及美元符號前綴。希望有所幫助...