requête HTTP (méthode POST) pour récupérer XML
Salut,
Je souhaite via une requête HTTP (méthode POST), récupérer sous format XML un ensemble de données depuis un site. Le site en question m'a confirmé que je pouvais utiliser du VBScript pour recevoir les données et ma donné comme exemple le code suivant (qui forcément n'est pas en VBS, mais en PHP).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
<?php
//permet d'afficher le document en XML
header('Content-type: text/xml; charset=UTF-8');
//remplacer VOTRE_TOKEN par votre token
define('TOKEN', 'VOTRE_TOKEN');
//call à appeler, ici GetOrders
define('CALL', 'GetOrders');
//Indifférement Sandbox ou Production
define('MODE', 'Sandbox');
//Pas besoin de xml pour GetOrder
$xml = '';
echo callWS($xml);
function callWS($xml){
//url du web service
$service_url = 'https://.../webservice/';
//encapsule les données dans un tableau
$curl_post_data = array(
'TOKEN' => TOKEN,
'CALL' => CALL,
'MODE'=> MODE,
'REQUEST' => $xml
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $service_url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
curl_close($curl);
//XML à parser
return $curl_response;
}
?> |
j'ai fais ce code VBS
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
Option Explicit
'Déclaration des variables
Dim oXMLHTTP
Dim StrTOKEN, StrCALL, StrMODE, StrREQUEST, strEnvelope, StrURL
'Initialisation des données pour la requête
StrURL = "https://.../webservice/"
StrTOKEN = "abcdef0123456789abcdef123456789abcdef123" 'fictif pour l'exemple
StrCALL = "GetOrders"
StrMODE = "Sandbox"
StrREQUEST = ""
strEnvelope = "Token=" & StrTOKEN & "&Call=" & StrCALL & "&Mode=" & StrMODE & "&Request=" & StrREQUEST
'Objet XMLHTTP
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
With oXMLHTTP
.open "POST", StrURL , False
.setRequestHeader "Content-type: text/xml; charset=UTF-8","application/x-www-form-urlencoded"
.send strEnvelope
wScript.Echo .responseText
.abort
End with |
mais la réponse du serveur est le suivant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<Result>
<Request>
<Date>2012-08-08T17:20:00+02:00</Date>
<Call/>
<Token/>
<Mode/>
</Request>
<Response>
<Error>
<Type>Parametres</Type>
<Message>Token manquant</Message>
</Error>
</Response>
</Result> |
Si quelqu'un aurait une idée sur où je bug ?
merci par avance