Duda recibiendo cookie.

Iniciado por TrashAmbishion, 6 Octubre 2018, 08:24 AM

0 Miembros y 1 Visitante están viendo este tema.

TrashAmbishion

Hola

Tengo este codigo que funciona bien

Código (vbnet) [Seleccionar]

            Dim webStream As Stream
            Dim webResponse = ""
            Dim request As HttpWebRequest
            Dim res As HttpWebResponse
            cookies = New CookieContainer

            request = CType(WebRequest.Create("https://host/"), HttpWebRequest)
            request.Method = "GET"
            request.AllowAutoRedirect = True
            request.CookieContainer = cookies
            request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0"
            request.Headers.Add("Upgrade-Insecure-Requests", "1")
            request.Headers.Add("Accept-Language", "es-ES,es;q=0.9")
            request.Host = "host"
            request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
            request.KeepAlive = True
            res = CType(request.GetResponse(), HttpWebResponse) ' Send Request
            webStream = res.GetResponseStream() ' Get Response
            Dim webStreamReader As New StreamReader(webStream)
            While webStreamReader.Peek >= 0
                webResponse = webStreamReader.ReadToEnd()
            End While


Aqui el servidor me da una cookie que guardo en el container y la envio en un POST, pero ya despues el servidor me devuelve una cookie nueva y nose como almacenarla, este es el codigo del POST

Código (vbnet) [Seleccionar]

        ' Set the Method property of the request to POST. 
        request1.Method = "POST"
        request1.Host = "secure.etecsa.net:8443"
        request1.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0"
        request1.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        request1.Referer = "https://secure.etecsa.net:8443/"
        ' Set the ContentType property of the WebRequest.
        request1.ContentType = "application/x-www-form-urlencoded"

        request1.CookieContainer = cookies
        request1.Connection = HttpRequestHeader.KeepAlive

        request1.Headers.Add("Accept-Encoding", "gzip, deflate, br")
        request1.Headers.Add("Accept-Language", "en-US,en;q=0.5")

        Dim byteArray() As Byte = Encoding.UTF8.GetBytes(postData)

        ' Set the ContentLength property of the WebRequest. 
        request1.ContentLength = byteArray.Length
        ' Get the request stream. 
        Dim dataStream As Stream = request1.GetRequestStream
        ' Write the data to the request stream. 
        dataStream.Write(byteArray, 0, byteArray.Length)
        ' Close the Stream object. 
        'dataStream.Close()
        ' Get the response. 
        Dim response As WebResponse = request1.GetResponse()

        'request1.GetResponse().Close()

        ' Display the status. 
        'MessageBox.Show(CType(response, HttpWebResponse).StatusDescription)
        ' Get the stream containing content returned by the server. 
        dataStream = response.GetResponseStream
        ' Open the stream using a StreamReader for easy access. 
        Dim reader As StreamReader = New StreamReader(dataStream)
        ' Read the content. 
        Dim responseFromServer As String = reader.ReadToEnd
        ' Display the content. 
        'MessageBox.Show(responseFromServer)
        ' Clean up the streams. 
        reader.Close()
        dataStream.Close()
        response.Close()


Alguna idea??

Es que estoy seguro que para cerrar la sesion la voy a necesitar.

Saludos

ThunderCls

Has revisado tu contenedor de cookies una vez has ejecutado tu POST? comprueba las cookies que tienes antes y despues del POST...Siempre y cuando utilices el mismo container en todas tus peticiones las cookies automáticamente se actualizaran/añadirán según la respuesta del servidor. Por cierto que intentas hacer con etecsa?  :xD
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

TrashAmbishion

Gracias ya me habia percatado.

Ya hice la aplicación, al menos lo gordo estoy en detalles, es una app para Windows que hace el login igual que por el navegador.

Le voy añadir una opción para poner varias tarjetas y programar una desconexion automática a X tiempo.

Saludos