POST Boundary

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
Avatar du membre
todac
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 18 septembre 2019
Version d'Excel : 2013

Message par todac » 18 septembre 2019, 10:40

Bonjour,

Je souhaite questioner une API via WEB et méthode POST

Mais il ne me comprends pas .
voici le code:
Public Sub TestPost()
    Dim xmlhttp As New MSXML2.xmlhttp, myurl As String
    Dim my_Url As String
    Dim my_Action As String
    Dim my_Login As String
    Dim my_Password As String
    Dim my_CodeSite As String
    Dim my_ID_OT As String
    Dim my_Payload As String
    Dim Sep As String
    Dim Frontiere As String
    
        Frontiere = "---011001010101011001101001"
        Sep = "&" 
        my_Url = "https://httpbin.org/post"   ' serveur de test POST

        my_Action = "action=recette_cuisine"
        my_Login = "login=test"
        my_Password = "password=asert123+-0"
        my_CodeSite = "code_recette=123_0011"
        my_ID_OT = "id_recette=7"
        
        my_Payload = my_Action & Sep & my_Login & Sep & my_Password & Sep & my_CodeSite & Sep & my_ID_OT
        
        xmlhttp.Open "POST", my_Url, False
              
        xmlhttp.setRequestHeader "content-type", "multipart/form-data; boundary=" & Frontiere 

        xmlhttp.send my_Payload
        MsgBox (xmlhttp.responseText)

End Sub
Cela ne fonctionne pas auriez vous des pistes ?
D'avance Merci.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'982
Appréciations reçues : 882
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 18 septembre 2019, 12:50

Bonjour, et bienvenue !

où cela plante-t-il ?
en modifiant la déclaration de xmlhttp et en ajoutant
Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
j'obtiens bien une réponse ...
Public Sub TestPost()
    Dim xmlhttp As Object, myurl As String
    Dim my_Url As String
    Dim my_Action As String
    Dim my_Login As String
    Dim my_Password As String
    Dim my_CodeSite As String
    Dim my_ID_OT As String
    Dim my_Payload As String
    Dim Sep As String
    Dim Frontiere As String
    
    Set xmlhttp = CreateObject("MSXML2.XMLHTTP")

        Frontiere = "---011001010101011001101001"
        Sep = "&"
        my_Url = "https://httpbin.org/post"   ' serveur de test POST

        my_Action = "action=recette_cuisine"
        my_Login = "login=test"
        my_Password = "password=asert123+-0"
        my_CodeSite = "code_recette=123_0011"
        my_ID_OT = "id_recette=7"
        
        my_Payload = my_Action & Sep & my_Login & Sep & my_Password & Sep & my_CodeSite & Sep & my_ID_OT
        
        xmlhttp.Open "POST", my_Url, False
              
        xmlhttp.setRequestHeader "content-type", "multipart/form-data; boundary=" & Frontiere

        xmlhttp.send my_Payload
        MsgBox (xmlhttp.responseText)

End Sub

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
todac
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 18 septembre 2019
Version d'Excel : 2013

Message par todac » 18 septembre 2019, 13:47

Malheureusement cela plante chez moi

xmlhttp.send my_Payload

Erreur d'execution '2147024809 (80070057)
Paramètre incorrect
si je met my_Payload en dur ca va mieux

xmlhttp.send "action=recette_cuisine&login=test&password=asert123+-0&code_recette=123_0011&id_recette=7"


mais le Form est toujours vide ( "form": {} ) ils devrait contenir action=recette_cuisine&login=test&password=asert123+-0&code_recette=123_0011&id_recette=7

Merci
Capture.JPG
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'982
Appréciations reçues : 882
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 18 septembre 2019, 14:05

Je t'envoie mon fichier de test ...
post.xlsm
(18.94 Kio) Téléchargé 3 fois

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
todac
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 18 septembre 2019
Version d'Excel : 2013

Message par todac » 18 septembre 2019, 14:19

Merci pour tes réponses étrange en effect.
Sur un PC j'ai toujours le meme message d'erreur.
Capture2.JPG
Capture2.JPG (48.75 Kio) Vu 68 fois
et sur l autre ça passe mais il ne passe pas les données Form est vide!
Capture3.PNG
Capture3.PNG (19.87 Kio) Vu 68 fois


Encore Merci pour ton aide.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'982
Appréciations reçues : 882
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 18 septembre 2019, 17:31

En tous cas, chez moi avec un programme php test, cela passe parfaitement !
Il faudrait savoir comment est réalisé le programme côté serveur ou avoir la page web de connexion pour vérifier les paramètres à passer (je suppose que l'as fait).

Voici mon exemple de programme php
<?php 
$param1 = $_POST['_remember_me']; 
$param2 = $_POST['_username']; 
$param3 = $_POST['_password']; 
$param4 = $_POST['_csrf_token']; 
?>
<html><body>
<table>

<tr><td>_remember_me</td><td>
<?php
echo $param1; 
?>
</td></tr>

<tr><td>_username</td><td>
<?php
echo $param2; 
?>
</td></tr>

<tr><td>_password</td><td>
<?php
echo $param3; 
?>
</td></tr>

<tr><td>_csrf_token</td><td>
<?php
echo $param4; 
?>
</td></tr>

</table>
</body></html>
et

la macro excel
Function HtmlPost(URL As String, param As String) As String
    With CreateObject("MSXML2.XMLHTTP")
        .Open "POST", URL, False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .Send param
        HtmlPost = .responseText
    End With
End Function
la .responseText étant une table html de valeurs que je récupère ensuite et colle dans un tableau excel.

et les paramètres passés :
&_remember_me=on&_username=moi&_password=pwd&_csrf_token=lpRLctCq2d5yaYYGhNC0O7WcPAFc95PqIoN98moFNYg

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
todac
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 18 septembre 2019
Version d'Excel : 2013

Message par todac » 23 septembre 2019, 19:30

Bon Merci, je vais creuser de ce coté, n'ayant pas accès au serveur.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'982
Appréciations reçues : 882
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 23 septembre 2019, 20:41

Tiens moi au courant ...
Mais si tu avais la page web qui requiert l'identification, tu peux me l'indiquer par mp, cela serait une source précieuse.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message