¿Winsock o Inet? para descargar con cookies

Iniciado por Jeronimo17, 11 Febrero 2006, 16:17 PM

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

Jeronimo17

Hola

Podriais decirme como descargar una imagen y/o mostrarla en el formulario enviando una cookie previa.

Ejem:
Conecta con www.explore-qatar.com 80

GET /elements/article_icons/qtwide.jpg HTTP/1.1
Host: www.explore-qatar.com
Cookie: 01540545045410201 (inventado)

Servidor >HTTP/1.1 200 OK
Date: Sat, 11 Feb 2006 15:14:53 GMT
Server: Apache/2.0.51 (Fedora)
Last-Modified: Wed, 04 Jan 2006 11:08:14 GMT
ETag: "144805b-44f-6eade380"
Accept-Ranges: bytes
Content-Length: 1103
Connection: close
Content-Type: image/jpeg

Servidor >ÿØÿàLa conexion la ha cerrado el servidor

Pues eso como se hace para descargar con cookie

Saludos

Jeronimo17

Ejemplo 2. :)

*** Conexion establecida.
Cliente >>>>>>>
GET /pin.jpg  HTTP/1.0
Host: www.noxtrum.com
Cookie: JSESSIONID=DF89C5D30DEC59CA2437B547DCB9C61E; Path=/


Servidor >>>>>>>
HTTP/1.1 200 OK
Date: Sun, 12 Feb 2006 14:56:39 GMT
Server: Apache-Coyote/1.1
X-Powered-By: false
Cache-Control: no-store
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Type: image/jpeg
Via: 1.0 www.noxtrum.com
Connection: close
X-Pad: avoid browser bug

ÿØÿà*** Conexion cerrada por el servidor.


¿Como se leeria la imagen completa y se mostria en el programa de VB o como se envia una cookie antes de descargar con Inet?

Jeronimo17

#2
A ver tengo esto en el codigo:

Private Sub Command4_Click()
Dim b() As Byte

         ' Ponemos el procolo y la url
         Inet1.Protocol = icHTTP
         Inet1.URL = "HTTP://www.noxtrum.com/pin.jpg"

         ' Recibimos los datos
         b() = Inet1.OpenURL(Inet1.URL, icByteArray)

         ' Creamos un archivo local para recibir los datos
         Open "C:\Homepage.jpg" For Binary Access Write As #1
         Put #1, , b()
         Close #1

         MsgBox "Hecho"
End Sub


Pero necesito enviar una cookie antes de descargar la imagen, y no se como enviarla, por winsock si pero con este no se descargar

Edit: Tambien podria ser con WebBrowser, Pero lo mismo ¿Como le meto la cabecera de la cookie?

Private Sub Form_Load()
WebBrowser1.Navigate "www.noxtrum.com/pin.jpg"
End Sub



Saludos, ayudarmeeee  ;D

maxnet

#3
tienes que usar el metodo execute del inet
en el tercer argumento escribes la cookie

saludos






Jeronimo17

Postheader no lo encuentro ni algo parecido, necesito algo mas especifico que ando  :huh:

Gracias

maxnet



Inet1.Execute URL, "GET", , "Cookie: JSESSIONID=DF89C5D30DEC59CA2437B547DCB9C61E; Path=/"



tienes que usar el evento statechanged del control inet

para leer los datos que te envia el servidor http
en la ayuda de visual hay un ejemplo

saludos



Jeronimo17

#6
Al final buscado por ahi lo hice con esto mucho mas sencillo

WebBrowser1.Navigate "www.noxtrum.com/pin.jpg", , , , "Cookie : JSESSIONID=DF89C5D30DEC59CA2437B547DCB9C61E; Path=/"

Una duda; no funciona con "Cookie:" tengo que poner "Cookie :" si no no se envia  :huh: la demas cabeceras si funcionan con los : junto a la palabra Ejem. Host:

Gracias
Un saludo Maxnet 

Pd: No tengo instalada la ayuda de VB y que poco hay del tema en internet (o al menos en Español)  :rolleyes: