Envoyer une requête XML post à un serveur web avec CURL
j'essaie d'envoyer une requête à un serveur web en utilisant php et curl. Je n'ai jamais fait quelque chose comme ça avant et bien qu'il y ait beaucoup d'exemples sympas en ligne j'ai quelques difficultés à comprendre certaines des commandes curl.
C'est ce que je veux faire: il y a un service web établi (par exemple: Web map service) et je veux que mon code php envoie une demande POST XML à ce service. Comme réponse, je veux obtenir un fichier XML.
C'est ce que j'ai jusqu'à maintenant:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
/*curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));*/
/* curl_setopt($ch, CURLOPT_HEADER, 0);*/
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
/*curl_setopt($ch, CURLOPT_REFERER, '');*/
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ch_result = curl_exec($ch);
curl_close($ch);
echo $ch_result;
comme je l'ai dit, je suis assez nouveau en php et aussi en utilisant curl et je pense que je manque quelques concepts. Mes questions sont les: 1) qu'est-Ce que la chaîne (lien) que je dois mettre dans la:
curl_setopt($ch, CURLOPT_URL, '');
est-ce le nom d'hôte du service que je veux envoyer la demande?
2) Dans la ligne 6 la variable $xml contient le fichier xml que je veux envoyer une demande. Est-ce correct ou cette variable est censée contenir autre chose?
3) en quels cas dois-je utiliser un httpheader ou l'en-tête (row3 et row4);
Merci pour votre aide. Dimitris
2 réponses
Essayez de cette façon:
$url = 'https://android.googleapis.com/gcm/send';
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, "<xml>here</xml>" );
$result = curl_exec($ch);
curl_close($ch);
Pour plus de détails, visitez: http://php.net/manual/en/function.curl-setopt.php