[VB] Problème winsock ne renvoie rien

Résolu
5n4k Messages postés 7 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 25 février 2009 - 25 févr. 2009 à 10:16
5n4k Messages postés 7 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 25 février 2009 - 25 févr. 2009 à 12:32
Tout d'abord bonjour et merci de vous pencher sur mon problème.
Voilà j'ai un problème, je m'explique: J'ai un petit projet vb6, j'aimerai faire un GET sur www.google.fr avec un Winsock et recevoir le contenu du GET dans le winsock pour l'utiliser.
Mais voila j'ai fais à peu prêt ce qu'il fallait faire je pense mais le winsock ne reçoit rien et ne répond pas (plante).
Où est mon erreur?

Private Sub Command1_Click()
Winsock1.Close
' Connexion à www.google.fr sur le port 80
Winsock1.Connect "www.google.fr", 80
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
     MsgBox "Erreur Winsock n° " & Number & " (" & Description & ")", vbInformation
End Sub

Private Sub Winsock1_Connect()
' Envoi du GET à www.google.fr
Winsock1.SendData "GET / HTTP/1.1" & vbCrLf & _
"Host: www.google.fr" & vbCrLf & _
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6" & vbCrLf & _
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & vbCrLf & _
"Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3" & vbCrLf & _
"Accept-Encoding: gzip,deflate" & vbCrLf & _
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" & vbCrLf & _
"Keep-Alive: 300" & vbCrLf & _
"Connection: keep-alive"
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Winsock1.GetData Text1.Text
' Mais arriver ici, le Text1.Text ne bronche pas d'un poil :(
End Sub

5n4k

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 févr. 2009 à 11:43
deux choses:

- ne pas passer directement la propriété Text :

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim sBuffer As String
Winsock1.GetData sBuffer, vbString, bytesTotal
Text1.Text = sBuffer
End Sub


- indiquer au serveur HTTP où se trouve la fin de la requete HTTP, en placant deux lignes vides :

...ge: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3" & vbCrLf & _
"Accept-Encoding: gzip,deflate" & vbCrLf & _
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" & vbCrLf & _
"Keep-Alive: 300" & vbCrLf & _
"Connection: keep-alive" & vbCrLf & vbCrLf
3
5n4k Messages postés 7 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 25 février 2009
25 févr. 2009 à 12:32
Super! Merci je n'attendais pas mieux!

5n4k
0
Rejoignez-nous