POST Boundary

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.

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

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

Je t'envoie mon fichier de test ...

3post.xlsm (18.94 Ko)

Merci pour tes réponses étrange en effect.

Sur un PC j'ai toujours le meme message d'erreur.

capture2

et sur l autre ça passe mais il ne passe pas les données Form est vide!

capture3

Encore Merci pour ton aide.

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

Bon Merci, je vais creuser de ce coté, n'ayant pas accès au serveur.

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.

Rechercher des sujets similaires à "post boundary"