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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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