2012-02-29 15 views
7

Tengo esta función es posible recuperar las cookies respuesta en un 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)); 


    } 
    } 
} 

Pero, cuando puedo depurar la solicitud de Fiddler, me sale esto:

enter image description here

¿Por qué hay un "$" en las cookies?

Según MSDN

Cookies pública (nombre de la cadena, cadena de valor, la ruta de cadena, cadena de dominio)

nombre Tipo: System.String El nombre de una galleta. Los siguientes caracteres no se deben usar dentro del nombre: signo igual, punto y coma, coma, nueva línea (\ n), retorno (\ r), pestaña (\ t) y carácter de espacio. El carácter de signo de dólar ("$") no puede ser el primer carácter.

¿Cómo puedo eliminar este personaje?

+0

¿Están las cosas rotas? ¿Tienes problemas? – asawyer

+0

Quiero reemplazar $ Domain to Domain y así sucesivamente – auraham

+0

Si modifica las cookies recibidas, ¿puede crear correctamente una nueva solicitud basada en estas cookies? –

Respuesta

6

El $ que ve no es el nombre de la cookie; es un atributo asociado con una cookie.

RFC 2109 se ocupa de la gestión del estado HTTP; la sección 4.4 trata específicamente con el prefijo del signo de dólar. Espero que ayude ...

Cuestiones relacionadas