Bonjour,

Je dois utiliser un web service pour la première fois, et même si j'ai des indications assez précises je rame pour les traduire en PHP...

Voici mes consignes :
  1. appeler l'URL http://toto
  2. utiliser un header avec des attributs Accept et Content-Type
  3. envoyer un body formaté en XML
  4. envoyer le tout en POST


Voici mon dernier test :

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
$url = 'http://toto';
 
$data ='<attrs>
<attr name="userName" type="string"/>Ali Baba</attr>
<attr name="password" type="string"/>Sésame, ouvre-toi</attr>
<attr name="auth" type="string" possibilities="secEnterprise,secLDAP,secWinAD,secSAPR3">secEnterprise</attr>
</attrs>
';
 
$options = array(
    'http' => array(
        'header'  => "Content-type: application/xml\r\nAccept: application/xml",
        'method'  => 'POST',
	'content' => urlencode($data) 
    )
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { echo "raté" ; }
 
var_dump($result);
Comme résultat, j'obtiens bien sûr raté.

L'un des trucs que je ne comprends pas : en POST, je suis censé envoyer des paires clef/valeur et pas un code XML... Est-ce que je dois l'associer à une clef ?

Je fais sans doute un paquet d'erreurs de débutant...