Private Sub MyWinSock_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 ("Une erreur Winsock est survenue : " & Description & vbCrLf & _
"Numero : " & Number & vbCrLf)
End Sub
ne peuvent pas etre identique, sinon le serveur risque de croire que tu veux l'utiliser comme proxie et te deconnecter si il l'interdit
MyHttpRequest = "GET " & MySiteAdress & "HTTP/1.0" & vbCrLf <---- tu dois avoir un resultat du type GET /images/machin.jpg HTTP/1.0+rn en conclusion pour cette ligne t doit changer "HTTP/1.0" par " HTTP/1.0" et te debrouiller pour recup que le chemin du repertoire
MyHttpRequest = MyHttpRequest & "Host: " & MySiteAdress & vbCrLf doit etre du genre Host : www.truc.com+rn donc tu dois recuperer que le host sur lequel tu te connectes, à la regueur le Me.MyWinSock.RemoteHost si le port est differente du protocole par defaut (80 pour http, tu peut lidiquer aussi dans la ligne en mettant Host: www.kkk.com:port+rn
je specifie au cas ou que +rn revient à ton & vbCrLf
voila, deja essaye en corrigeant cela, apres on verra. ce qui veut pas dire que c'est moi qui repondrait encore
ne peuvent pas etre identique, sinon le serveur risque de croire que tu veux
l'utiliser comme proxie et te deconnecter si il l'interdit
MyHttpRequest = "GET " & MySiteAdress & "HTTP/1.0" & vbCrLf <---- tu dois
avoir un resultat du type GET /images/machin.jpg HTTP/1.0+rn
en conclusion pour cette ligne t doit changer "HTTP/1.0" par " HTTP/1.0" et
te debrouiller pour recup que le chemin du repertoire
MyHttpRequest = MyHttpRequest & "Host: " & MySiteAdress & vbCrLf doit etre
du genre Host : www.truc.com+rn
donc tu dois recuperer que le host sur lequel tu te connectes, à la regueur
le Me.MyWinSock.RemoteHost
si le port est differente du protocole par defaut (80 pour http, tu peut
lidiquer aussi dans la ligne en mettant Host: www.kkk.com:port+rn
je specifie au cas ou que +rn revient à ton & vbCrLf
voila, deja essaye en corrigeant cela, apres on verra. ce qui veut pas dire
que c'est moi qui repondrait encore
ne peuvent pas etre identique, sinon le serveur risque de croire que tu veux l'utiliser comme proxie et te deconnecter si il l'interdit
MyHttpRequest = "GET " & MySiteAdress & "HTTP/1.0" & vbCrLf <---- tu dois avoir un resultat du type GET /images/machin.jpg HTTP/1.0+rn en conclusion pour cette ligne t doit changer "HTTP/1.0" par " HTTP/1.0" et te debrouiller pour recup que le chemin du repertoire
MyHttpRequest = MyHttpRequest & "Host: " & MySiteAdress & vbCrLf doit etre du genre Host : www.truc.com+rn donc tu dois recuperer que le host sur lequel tu te connectes, à la regueur le Me.MyWinSock.RemoteHost si le port est differente du protocole par defaut (80 pour http, tu peut lidiquer aussi dans la ligne en mettant Host: www.kkk.com:port+rn
je specifie au cas ou que +rn revient à ton & vbCrLf
voila, deja essaye en corrigeant cela, apres on verra. ce qui veut pas dire que c'est moi qui repondrait encore
Merci de ces renseignements, j'ai modifié le code, et j'ai toujours une erreur qui apparait en boucle (obligé de killer VB) maintenant 10053. Dois je utiliser la magie noire ?
"dark poulpo" a écrit dans le message news: 425f84e0$0$19361$
ne peuvent pas etre identique, sinon le serveur risque de croire que tu
veux
l'utiliser comme proxie et te deconnecter si il l'interdit
MyHttpRequest = "GET " & MySiteAdress & "HTTP/1.0" & vbCrLf <---- tu dois avoir un resultat du type GET /images/machin.jpg HTTP/1.0+rn en conclusion pour cette ligne t doit changer "HTTP/1.0" par " HTTP/1.0"
et
te debrouiller pour recup que le chemin du repertoire
MyHttpRequest = MyHttpRequest & "Host: " & MySiteAdress & vbCrLf doit etre du genre Host : www.truc.com+rn donc tu dois recuperer que le host sur lequel tu te connectes, à la
regueur
le Me.MyWinSock.RemoteHost si le port est differente du protocole par defaut (80 pour http, tu peut lidiquer aussi dans la ligne en mettant Host: www.kkk.com:port+rn
je specifie au cas ou que +rn revient à ton & vbCrLf
voila, deja essaye en corrigeant cela, apres on verra. ce qui veut pas
Merci de ces renseignements,
j'ai modifié le code,
et j'ai toujours une erreur qui apparait en boucle (obligé de killer VB)
maintenant 10053.
Dois je utiliser la magie noire ?
"dark poulpo" <qsdqd@sss.ss> a écrit dans le message news:
425f84e0$0$19361$8fcfb975@news.wanadoo.fr...
ne peuvent pas etre identique, sinon le serveur risque de croire que tu
veux
l'utiliser comme proxie et te deconnecter si il l'interdit
MyHttpRequest = "GET " & MySiteAdress & "HTTP/1.0" & vbCrLf <---- tu dois
avoir un resultat du type GET /images/machin.jpg HTTP/1.0+rn
en conclusion pour cette ligne t doit changer "HTTP/1.0" par " HTTP/1.0"
et
te debrouiller pour recup que le chemin du repertoire
MyHttpRequest = MyHttpRequest & "Host: " & MySiteAdress & vbCrLf doit etre
du genre Host : www.truc.com+rn
donc tu dois recuperer que le host sur lequel tu te connectes, à la
regueur
le Me.MyWinSock.RemoteHost
si le port est differente du protocole par defaut (80 pour http, tu peut
lidiquer aussi dans la ligne en mettant Host: www.kkk.com:port+rn
je specifie au cas ou que +rn revient à ton & vbCrLf
voila, deja essaye en corrigeant cela, apres on verra. ce qui veut pas
Merci de ces renseignements, j'ai modifié le code, et j'ai toujours une erreur qui apparait en boucle (obligé de killer VB) maintenant 10053. Dois je utiliser la magie noire ?
"dark poulpo" a écrit dans le message news: 425f84e0$0$19361$
ne peuvent pas etre identique, sinon le serveur risque de croire que tu
veux
l'utiliser comme proxie et te deconnecter si il l'interdit
MyHttpRequest = "GET " & MySiteAdress & "HTTP/1.0" & vbCrLf <---- tu dois avoir un resultat du type GET /images/machin.jpg HTTP/1.0+rn en conclusion pour cette ligne t doit changer "HTTP/1.0" par " HTTP/1.0"
et
te debrouiller pour recup que le chemin du repertoire
MyHttpRequest = MyHttpRequest & "Host: " & MySiteAdress & vbCrLf doit etre du genre Host : www.truc.com+rn donc tu dois recuperer que le host sur lequel tu te connectes, à la
regueur
le Me.MyWinSock.RemoteHost si le port est differente du protocole par defaut (80 pour http, tu peut lidiquer aussi dans la ligne en mettant Host: www.kkk.com:port+rn
je specifie au cas ou que +rn revient à ton & vbCrLf
voila, deja essaye en corrigeant cela, apres on verra. ce qui veut pas
Merci de cet exemple, je vais essayer de me débrouiller avec,
merci pour vos réponses rapides c'est super sympa!
"LE TROLL" <le a écrit dans le message news: #
Salut, je ne sais pas si ça peut t'avancer, mais ci-joint en fichier, un qui fonctionne: --------------
"loic" a écrit dans le message de news: u$ > Bonjour, > > J'essaie d'utiliser le controle Winsock. > La connexion à priori se passe bien... > > mais dès l'envoi des données, unne erreur en boucle > survient 10046... > > voici le code : > > Private Sub B_Connexion_Click() > Me.MyWinSock.Close > > Me.MyWinSock.RemoteHost = "216.239.59.99" > > Me.MyWinSock.RemotePort = 80 > > Me.MyWinSock.Connect > End Sub > > > > Private Sub MyWinSock_Connect() > 'MsgBox "La connexion est établie!" > > 'on définit notre variable > Dim MyHttpRequest As String > > Dim MySiteAdress As String > MySiteAdress = Me.T_Adresse_Site.Text > > 'Création de l'en tête. > MyHttpRequest = "GET " & MySiteAdress & "HTTP/1.0" & > vbCrLf > MyHttpRequest = MyHttpRequest & "Host: " & MySiteAdress > & vbCrLf > MyHttpRequest = MyHttpRequest & "Accept: */*" & vbCrLf > MyHttpRequest = MyHttpRequest & "Connection: close" & > vbCrLf > MyHttpRequest = MyHttpRequest & vbCrLf > > Me.MyWinSock.SendData MyHttpRequest > End Sub > > Private Sub MyWinSock_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 ("Une erreur Winsock est survenue : " & > Description & vbCrLf & _ > "Numero : " & Number & vbCrLf) > End Sub > > Merci... > >
Pierre-yves Girault
dark poulpo a écrit :
autre chose, si jai bonne mémoire, MyHttpRequest & "Connection: close" & vbCrLf doit etre envoyé par le serveur, pas par le client (donc à supprimer)
tu devrais jeter un oeil sur google, en tapant rfc http
Bonjour,
Non, en fait le client peut le préciser aussi. Ceci-dit, dans le cas présent c'est inutile car c'est le comportement par défaut pour le HTTP/1.0. Par contre, pour le HTTP/1.1, il faut le préciser car le comportement par défaut du serveur est de conserver la connexion ouverte pour les requètes suivantes (keep-alive).
dark poulpo a écrit :
autre chose, si jai bonne mémoire, MyHttpRequest & "Connection: close" &
vbCrLf doit etre envoyé par le serveur, pas par le client
(donc à supprimer)
tu devrais jeter un oeil sur google, en tapant rfc http
Bonjour,
Non, en fait le client peut le préciser aussi.
Ceci-dit, dans le cas présent c'est inutile car c'est le comportement
par défaut pour le HTTP/1.0.
Par contre, pour le HTTP/1.1, il faut le préciser car le comportement
par défaut du serveur est de conserver la connexion ouverte pour les
requètes suivantes (keep-alive).
autre chose, si jai bonne mémoire, MyHttpRequest & "Connection: close" & vbCrLf doit etre envoyé par le serveur, pas par le client (donc à supprimer)
tu devrais jeter un oeil sur google, en tapant rfc http
Bonjour,
Non, en fait le client peut le préciser aussi. Ceci-dit, dans le cas présent c'est inutile car c'est le comportement par défaut pour le HTTP/1.0. Par contre, pour le HTTP/1.1, il faut le préciser car le comportement par défaut du serveur est de conserver la connexion ouverte pour les requètes suivantes (keep-alive).
Pierre-yves Girault
Bonjour,
En tenant compte des remarques de dark poulpo (à part pour le "connection: close") et en ajoutant un vbCrLf après la dernière ligne de l'entête, votre code fonctionne chez moi.
Les requêtes se finissent toujours par une ligne vide, c'est comme ça que le serveur HTTP sait que la requête est complète. Du coup, pour la dernière ligne de l'entête il faut finir par vbCrLf & vbCrLf
loic a écrit :
Bonjour,
J'essaie d'utiliser le controle Winsock. La connexion à priori se passe bien...
mais dès l'envoi des données, unne erreur en boucle survient 10046...
voici le code :
Private Sub B_Connexion_Click() Me.MyWinSock.Close
Me.MyWinSock.RemoteHost = "216.239.59.99"
Me.MyWinSock.RemotePort = 80
Me.MyWinSock.Connect End Sub
Private Sub MyWinSock_Connect() 'MsgBox "La connexion est établie!"
'on définit notre variable Dim MyHttpRequest As String
Dim MySiteAdress As String MySiteAdress = Me.T_Adresse_Site.Text
Private Sub MyWinSock_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 ("Une erreur Winsock est survenue : " & Description & vbCrLf & _ "Numero : " & Number & vbCrLf) End Sub
Merci...
Bonjour,
En tenant compte des remarques de dark poulpo (à part pour le
"connection: close") et en ajoutant un vbCrLf après la dernière ligne de
l'entête, votre code fonctionne chez moi.
Les requêtes se finissent toujours par une ligne vide, c'est comme ça
que le serveur HTTP sait que la requête est complète.
Du coup, pour la dernière ligne de l'entête il faut finir par
vbCrLf & vbCrLf
loic a écrit :
Bonjour,
J'essaie d'utiliser le controle Winsock.
La connexion à priori se passe bien...
mais dès l'envoi des données, unne erreur en boucle survient 10046...
voici le code :
Private Sub B_Connexion_Click()
Me.MyWinSock.Close
Me.MyWinSock.RemoteHost = "216.239.59.99"
Me.MyWinSock.RemotePort = 80
Me.MyWinSock.Connect
End Sub
Private Sub MyWinSock_Connect()
'MsgBox "La connexion est établie!"
'on définit notre variable
Dim MyHttpRequest As String
Dim MySiteAdress As String
MySiteAdress = Me.T_Adresse_Site.Text
Private Sub MyWinSock_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 ("Une erreur Winsock est survenue : " & Description & vbCrLf & _
"Numero : " & Number & vbCrLf)
End Sub
En tenant compte des remarques de dark poulpo (à part pour le "connection: close") et en ajoutant un vbCrLf après la dernière ligne de l'entête, votre code fonctionne chez moi.
Les requêtes se finissent toujours par une ligne vide, c'est comme ça que le serveur HTTP sait que la requête est complète. Du coup, pour la dernière ligne de l'entête il faut finir par vbCrLf & vbCrLf
loic a écrit :
Bonjour,
J'essaie d'utiliser le controle Winsock. La connexion à priori se passe bien...
mais dès l'envoi des données, unne erreur en boucle survient 10046...
voici le code :
Private Sub B_Connexion_Click() Me.MyWinSock.Close
Me.MyWinSock.RemoteHost = "216.239.59.99"
Me.MyWinSock.RemotePort = 80
Me.MyWinSock.Connect End Sub
Private Sub MyWinSock_Connect() 'MsgBox "La connexion est établie!"
'on définit notre variable Dim MyHttpRequest As String
Dim MySiteAdress As String MySiteAdress = Me.T_Adresse_Site.Text
Private Sub MyWinSock_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 ("Une erreur Winsock est survenue : " & Description & vbCrLf & _ "Numero : " & Number & vbCrLf) End Sub
Merci...
loic
Mon problème était un problème d'initialisation !!!
il fautr faire appel à la fonction WSAStartup de l'API
Public Declare Function WSAStartup Lib "ws2_32.dll" (ByVal wVR As Long, lpWSAD As WSAData) As Long
et ça marche maintenant....
"loic" a écrit dans le message news: u$
Bonjour,
J'essaie d'utiliser le controle Winsock. La connexion à priori se passe bien...
mais dès l'envoi des données, unne erreur en boucle survient 10046...
voici le code :
Private Sub B_Connexion_Click() Me.MyWinSock.Close
Me.MyWinSock.RemoteHost = "216.239.59.99"
Me.MyWinSock.RemotePort = 80
Me.MyWinSock.Connect End Sub
Private Sub MyWinSock_Connect() 'MsgBox "La connexion est établie!"
'on définit notre variable Dim MyHttpRequest As String
Dim MySiteAdress As String MySiteAdress = Me.T_Adresse_Site.Text
Private Sub MyWinSock_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 ("Une erreur Winsock est survenue : " & Description & vbCrLf & _ "Numero : " & Number & vbCrLf) End Sub
Merci...
Mon problème était un problème d'initialisation !!!
il fautr faire appel à la fonction WSAStartup de l'API
Public Declare Function WSAStartup Lib "ws2_32.dll" (ByVal wVR As Long,
lpWSAD As WSAData) As Long
et ça marche maintenant....
"loic" <loic.monet@ifrance.com> a écrit dans le message news:
u$EQvLZQFHA.1500@TK2MSFTNGP09.phx.gbl...
Bonjour,
J'essaie d'utiliser le controle Winsock.
La connexion à priori se passe bien...
mais dès l'envoi des données, unne erreur en boucle survient 10046...
voici le code :
Private Sub B_Connexion_Click()
Me.MyWinSock.Close
Me.MyWinSock.RemoteHost = "216.239.59.99"
Me.MyWinSock.RemotePort = 80
Me.MyWinSock.Connect
End Sub
Private Sub MyWinSock_Connect()
'MsgBox "La connexion est établie!"
'on définit notre variable
Dim MyHttpRequest As String
Dim MySiteAdress As String
MySiteAdress = Me.T_Adresse_Site.Text
Private Sub MyWinSock_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 ("Une erreur Winsock est survenue : " & Description & vbCrLf & _
"Numero : " & Number & vbCrLf)
End Sub
Private Sub MyWinSock_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 ("Une erreur Winsock est survenue : " & Description & vbCrLf & _ "Numero : " & Number & vbCrLf) End Sub