Requete http via un document excel

Requete http via un document excel - VB/VBA/VBS - Programmation

Marsh Posté le 27-02-2006 à 10:40:42    

Bonjour,  
 
Je suis pas un pro du VB, et je cale un peu, j'ai réussi a faire mon formulaire, et tout mais je bloque pour l'envois de données par requete HTTP (POST).
J'ai fait quelques recherches sur le net, et je trouve des code source qui sont sencé marcher sous vb mais je ne sais pas trop si y a une diff sous excel en vba... faut-il rajouter des lib? Si oui les quel?
Le truc c'est qu'il faut que tout tienne en un fichier .XLS.  
 
Bref je bloque, j'ai besoin de conseils :( je sais pas trop ou chercher c'est ca le prob
 
Merci d'avance
 
Gat$


Message édité par Gat$ le 27-02-2006 à 10:41:53
Reply

Marsh Posté le 27-02-2006 à 10:40:42   

Reply

Marsh Posté le 28-02-2006 à 09:12:39    

up  
 
J'ai vraiment du mal a trouver une bonne base pour démarrer :/ :cry:
J'ai bien trouvé comment appeler une page avec un objet internetexplorer, mais je ne sais pas comment envoyer des données en get ou en post, et en récupérer le résultat , help :cry:


Message édité par Gat$ le 28-02-2006 à 09:13:14
Reply

Marsh Posté le 01-03-2006 à 12:36:38    

up

Reply

Marsh Posté le 03-03-2006 à 11:06:09    

Je pense que la syntaxe Get ou Post est standard et donc tu peux chercher des tutoriels ou des exemples dans d'autres langages de programmation comme PHP, pourvu qu'ils décrivent bien une requete Get ou Post.
 
Si dans ton code VBA il manque une biblothèque, la compilation plantera et tu auras un message d'erreur. Tu pourras nous l'indiquer et on pourra t'aider un peu plus.
Je n'ai, personnellement, pas assez de recul sur le sujet pour t'aider mieux


Message édité par tegu le 03-03-2006 à 11:06:27
Reply

Marsh Posté le 12-01-2010 à 11:01:11    

up
les différentes syntax que j'ai trouvé en VBS, VB.NET,... ne fonctionne pas en VBA.
 
je voudrais faire la requete suivante:
 
 
GET http://<server>/api/ptz.cgi? [...] tSpeed=56&  
ZoomSpeed=-16  
 
 
Merci d'avance pour votre aide
Alex

Reply

Marsh Posté le 12-01-2010 à 21:35:50    

Reply

Marsh Posté le 29-07-2010 à 17:52:47    

Tiens, ça tombe bien ce topic, j'avais justement besoin de faire une requête http via Excel. Drapal :)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 04-08-2010 à 11:23:52    

VB et VBA, c'est un peu pareil, c'est juste une question de librairie a cocher dans les références VB
 
je m'étais fait une fonction pour uploader un fichier XML sur un serveur
ça ressemble a ça  :
(j'ai fortement tronqué ce que je faisais, j'espère ne pas avoir trop tronqué :D )
 
 

Citation :


' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
' Description : compose la requète Http d'upload de fichier et l'envoie
' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Private Function RequeteHTTP(strURL As String) As String
 
   Dim strXML As String 'Contenu du XML
   Dim strBody As String 'Contenu de la requète HTTP
   Dim aPostData() As Byte
   Dim ServerSafeHTTP As New XMLHTTP
 
   'Préparation des entete et body du formulaire
   ServerSafeHTTP.Open "POST", strURL, False
   
   strBody = ""
   strBody = strBody & fm_SetBody("txt_str_codeIntervention", strNumIntervention)
   strBody = strBody & fm_SetBody("txt_str_DteGen", strDteGen)
   strBody = strBody & fm_SetBody("txt_str_HreGen", strHreGen)
   strBody = strBody & fm_SetBodyFile(Right(strXMLFilePath, 3), strFileName)   'entete du fichier selon son type
   strBody = strBody & strXML & vbCrLf & "--" & Const_BOUNDARY & "--" 'Fin de traitement
   
   aPostData = StrConv(strBody, vbFromUnicode)
   ServerSafeHTTP.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & Const_BOUNDARY & vbCrLf
   ServerSafeHTTP.send aPostData
   
   If ServerSafeHTTP.Status = 200 Then
       RequeteHTTP = ServerSafeHTTP.responseText
   Else
       RequeteHTTP = "Erreur : " & ServerSafeHTTP.Status & vbCrLf & ServerSafeHTTP.StatusText & vbCrLf & ServerSafeHTTP.responseText
   End If
 
End Function


Message édité par Xxxaaavvv le 04-08-2010 à 11:32:36
Reply

Marsh Posté le 04-08-2010 à 11:30:32    

et pour cette fonction y a besoin de 3 choses ...
 
la constante pour faire du POST:

Citation :


'Constante séparatrice de champs dans la composition des requètes HTTP
Private Const Const_BOUNDARY As String = "AaB03x"


 
la fonction fm_SetBody()

Citation :


' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' Description : formate un parametre HTTP (méthode POST)
' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Private Function fm_SetBody(strname As String, strvalue As String) As String
    Dim body As String
    body = "--" & Const_BOUNDARY & vbCrLf
    body = body & "Content-Disposition: form-data; name=""" & strname & """" & vbCrLf & vbCrLf
    body = body & strvalue & vbCrLf
    fm_SetBody = body
End Function


 
 
et surtout
la librairie Microsoft XML, version quelconque cochée dans les références VBA.
 
elle est installée avec IE donc quasiment sur tous les poste windows.
normalement, on est pas obligé d'utiliser celle la (c'est une surcouche de je ne sais plus laquelle, mais moi je fait du XML donc ça tombe bien :o )
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed