2012-02-29 27 views
7

tôi có chức năng này để truy xuất các tập tin cookie phản ứng trong một 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)); 


    } 
    } 
} 

Nhưng, khi tôi gỡ lỗi các yêu cầu trong Fiddler, tôi có được điều này:

enter image description here

Tại sao có "$" trong cookie?

Theo MSDN

Cookie công cộng (string name, chuỗi giá trị, con đường string, string miền)

tên Loại: System.String Tên của một Cookie. Các ký tự sau không được sử dụng bên trong tên: dấu bằng, dấu chấm phẩy, dấu phẩy, dòng mới (\ n), tab trả về (\ r), (\ t) và ký tự khoảng trắng. Ký tự dấu đô la ("$") không thể là ký tự đầu tiên.

Tôi làm cách nào để xóa ký tự này?

+0

Mọi thứ có bị hỏng không? Bạn đang gặp vấn đề? – asawyer

+0

Tôi muốn thay thế $ Domain sang Domain và như vậy – auraham

+0

Nếu bạn thay đổi cookie đã nhận, bạn có thể tạo đúng yêu cầu mới dựa trên các cookie này không? –

Trả lời

6

$ bạn thấy không phải là tên của cookie; nó là thuộc tính được liên kết với cookie.

RFC 2109 giao dịch với quản lý nhà nước HTTP; phần 4.4 đề cập cụ thể đến tiền tố ký hiệu đô la. Hy vọng rằng sẽ giúp ...

Các vấn đề liên quan