none
Comment garder obtenir et renvoyer le cookie d'une session http ? How to get and reuse the a http session cookie? RRS feed

  • Question

  • Dim compteur As Byte = 0 Dim CookieJar As CookieContainer = New CookieContainer Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim Adresse As String = "https://mobile.free.fr/moncompte/chiffre.php?pos=" TéléchargerPageWEB(New Uri("https://mobile.free.fr/moncompte/")) For i As Byte = 0 To 9 TéléchargerFichier(New Uri(Adresse + i.ToString), "C:\Image" + i.ToString + ".jpg") ListBox1.Items.Add(Adresse + i.ToString) Next End Sub Private Sub TéléchargerPageWEB(ByVal Adresse As Uri) Dim CodeSource As String Dim Requête As HttpWebRequest = HttpWebRequest.Create(Adresse) Dim Réponse As HttpWebResponse = Requête.GetResponse Requête.KeepAlive = True Requête.ProtocolVersion = HttpVersion.Version11 Requête.Referer = "http://mobile.free.fr/" Requête.Accept = "application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*" Requête.Headers.Add("Accept-Language", "fr-FR") Requête.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; Zune 4.7; SVD)" Requête.CookieContainer = CookieJar Dim LecteurFlux As IO.StreamReader = New IO.StreamReader(Réponse.GetResponseStream) CodeSource = LecteurFlux.ReadToEnd() LecteurFlux.Close() End Sub Private Sub TéléchargerFichier(ByVal Adresse As Uri, ByVal CheminLocal As String) Dim Requête As HttpWebRequest = HttpWebRequest.Create(Adresse) Dim Réponse As HttpWebResponse = Requête.GetResponse Requête.ProtocolVersion = HttpVersion.Version11 Requête.Accept = "*/*" Requête.Referer = "https://mobile.free.fr/moncompte/" Requête.Headers.Add("Accept-Language", "fr-FR") Requête.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; Zune 4.7; SVD)" Requête.KeepAlive = True Requête.CookieContainer = CookieJar Dim LecteurFlux As IO.BinaryReader = New IO.BinaryReader(Réponse.GetResponseStream, System.Text.Encoding.ASCII) Dim fgh(4096) As Byte Dim iii As Int64 = 0 Try Do fgh(iii) = LecteurFlux.ReadByte() iii += 1 Loop Catch ex As Exception End Try LecteurFlux.Close() LecteurFlux.Dispose() (System.Text.Encoding.Unicode, System.Text.Encoding.ASCII, IO.File.WriteAllBytes("c:\bla" + compteur.ToString + ".png", fgh) compteur += 1 End Sub

     

    Bonjour à tous !

    J'essaye de récupérer une page ainsi que certaines de ses images qui sont dynamiques. Internet Explorer envoie dans les requêtes des images un cookie fourni dans la première requête à la page web. Quand j'effectue les requêtes pour ces images, je reçois toujours la même, je ne devrais pas. Ces images composent un clavier numérique allant de 0 à 9 dans un ordre aléatoire. Je récupère toujours une image contenant le digit "zéro" en neuf exemplaires.

    Je ne suis pas sûr que le cookie soit retransmis, mais j'ai essayé d'imiter au maximum les requêtes générées par IE. Est-ce que la propriété "Keep-Alive" est absolument nécessaire ? En effet, dans la fonction "TéléchargerFichier", même si je spécifie le "Keep-Alive" à True, le header ne semble pas contenir la propriété à l'envoi.

    Voici mon code, il est composé de deux procédures, une pour télécharger la page WEB et l'autre pour les fichiers, un évènement de clic sur un bouton les appelle.

    En espérant que vous puissiez m'aider, ça fait des jours que j'essaie de trouver ce qui ne va pas dans mon code. ;)

    Hi all!

    I'm trying to get a web page source and some of its related picture files which are dynamic files. Internet Explorer sends with the requests a cookie which is obtained in the response of the page request. When I make requests for these picture files, I always get the same one, I should not. Theses pictures randomly compose an online keyboard from 0 to 9 at each connection.

    I am not sure Visual Studio sends the cookie back, but I tried to imitate IE requests. Is the "Keep-Alive" property necessary? In the "TéléchargerFichier", even "KEpp-Alive" property being True, the header doesn't seem to contain at sending.

    Here is my code, it is composed of two subs, one to download the web page and the other one to download picture files, an click event on a button call them.

    Hope you can help, it's been days I am trying to figure out what is going wrong with my code. ;)

    vendredi 2 mars 2012 09:52

Réponses