elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Enviar cookies en HttpWebRequest C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Enviar cookies en HttpWebRequest C#  (Leído 2,448 veces)
Miguel2706

Desconectado Desconectado

Mensajes: 1

¿Windows? ¿Que es eso?


Ver Perfil
Enviar cookies en HttpWebRequest C#
« en: 31 Octubre 2013, 21:59 pm »

Hola amigos, este es mi primer mensaje. Les escribo para ver si alguno de ustedes sabe como enviar una cookie en C#, mediante una solicitudo POST con HttpWebRequest. Hasta ahora tengo el siguiente código (es para iniciar sesión en Mediawiki):
Código
  1.  
  2. public string Post(Uri wiki, string uri, string post_data, CookieCollection cookie = null)
  3.      {
  4.               try
  5.                {
  6.                    // create a request
  7.                    HttpWebRequest request = (HttpWebRequest)
  8.                    WebRequest.Create(uri); request.KeepAlive = true;
  9.                   request.Headers.Add("Accept-Encoding", "gzip");
  10.                   request.AutomaticDecompression = DecompressionMethods.GZip;
  11.                    //if cookies parameters not is false, send the cookies!
  12.                    if (cookie != null)
  13.                    {
  14.                        request.CookieContainer = new CookieContainer();
  15.                        request.CookieContainer.Add(wiki, cookie);
  16.  
  17.                    }
  18.                    request.ProtocolVersion = HttpVersion.Version10;
  19.                    request.Method = "POST";
  20.                    //The fantastic user agent
  21.                    request.UserAgent = "inteliBOT/1.0 (https://es.wikipedia.org/wiki/Usuario:InteliBOT)";
  22.                    System.Net.ServicePointManager.Expect100Continue = false;
  23.                    // turn our request string into a byte stream
  24.                    byte[] postBytes = Encoding.UTF8.GetBytes(post_data);
  25.  
  26.                    // this is important - make sure you specify type this way
  27.                    request.ContentType = "application/x-www-form-urlencoded";
  28.                    request.ContentLength = postBytes.Length;
  29.                    Stream requestStream = request.GetRequestStream();
  30.  
  31.                    // now send it
  32.                    requestStream.Write(postBytes, 0, postBytes.Length);
  33.                    requestStream.Close();
  34.  
  35.                    // grab te response and print it out to the console along with the status code
  36.                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  37.                    StreamReader Reader = new StreamReader(response.GetResponseStream());
  38.                    string respuesta = Reader.ReadToEnd();
  39.                    return respuesta;
  40.                }
  41.                catch (Exception e)
  42.                {
  43.                    Console.WriteLine(e.Message);
  44.                    MessageBoxButtons buttons = MessageBoxButtons.OK;
  45.                    string message = e.Message;
  46.                    string caption = "Error";
  47.                    DialogResult dresult;
  48.                    dresult = MessageBox.Show(message, caption, buttons, MessageBoxIcon.Error);
  49.                    login.ActiveForm.Show();
  50.                    loging.ActiveForm.Close();
  51.                    return e.Message;
  52.                }
Y así es como llamo a la función:
Código
  1. Cookie CookieSession = new Cookie(prefix + "_session", session);
  2.                Cookie CookieToken = new Cookie(prefix + "Token", token);
  3.                CookieCollection Cookies = new CookieCollection();
  4.                Cookies.Add(CookieSession);
  5.                Cookies.Add(CookieToken);
  6.                string result2 = Post(Url, wiki, String.Format("action=login&lgname={0}&lgpassword={1}&lgtoken={2}&format=xml", bot, pass, token), Cookies);
Gracias de antemano por sus respuestas :D


En línea

Spiritdead5

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Enviar cookies en HttpWebRequest C#
« Respuesta #1 en: 1 Noviembre 2013, 00:22 am »

Código:
 if (cookie != null)
                   {
                       request.CookieContainer = new CookieContainer();
                       request.CookieContainer.Add(wiki, cookie);
 
                   }
aca esta mal

estas seteando en el cookiecontainer una instancia vacia sin cookies, debes crearla primero,llenarla y despues es que seteas el Request.CookieContainer

es mi consejo

PD: ahora q me doy cuenta estas diciendo si cookie != null (osea el contenedor es null) añades al cookiecontainer otro contenedor ? xD echale 1 ojo a esa parte de las cookies


« Última modificación: 1 Noviembre 2013, 00:27 am por Spiritdead5 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[DUDA] Usar Httpwebrequest
.NET (C#, VB.NET, ASP)
.:Weeds:. 7 6,770 Último mensaje 7 Octubre 2010, 18:40 pm
por .::IT::.
¿Qué es un HTTPWEBREQUEST / WEBREQUEST?
.NET (C#, VB.NET, ASP)
avmiitxe 4 5,071 Último mensaje 18 Abril 2012, 17:31 pm
por avmiitxe
Pregunta HttpWebRequest c#
.NET (C#, VB.NET, ASP)
lamique 1 2,538 Último mensaje 22 Febrero 2013, 17:49 pm
por lamique
Problema al intentar publicar contenido con HttpWebRequest
.NET (C#, VB.NET, ASP)
lombervid 9 5,938 Último mensaje 12 Septiembre 2013, 22:11 pm
por lombervid
[SOLUCIONADO] Headers HttpWebRequest « 1 2 »
.NET (C#, VB.NET, ASP)
TMarmol 11 8,906 Último mensaje 1 Julio 2014, 21:52 pm
por TMarmol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines