J'essaie d'envoyer une demande à un serveur Web en utilisant php et curl. Je n'ai jamais fait quelque chose comme ça auparavant et bien qu'il existe de nombreux exemples Nice en ligne, j'ai quelques difficultés à comprendre certaines des commandes curl.
Voici ce que je veux faire: il existe un service Web établi (par exemple: service de carte Web) et je veux que mon code php envoie une demande de publication XML à ce service. En réponse, je veux obtenir un fichier XML.
Voici 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 certains concepts. Mes questions sont: 1) Quelle est la chaîne (lien) que je dois mettre dans:
curl_setopt($ch, CURLOPT_URL, '');
Est-ce le nom d'hôte du service auquel je souhaite envoyer la demande?
2) Dans la ligne 6, la variable $ xml contient le fichier xml que je veux envoyer comme demande. Est-ce correct ou cette variable est censée contenir autre chose?
3) Dans quels cas dois-je utiliser un httpheader ou un en-tête (row3 et row4);
Merci pour l'aide. Dimitris
Essayez-le 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