Utilisation de cURL avec la méthode POST
Bonjour,
J'ai utilisé cURL avec la méthode GET pour envoyer un fichier de configuration sous forme de fichier XML vers ma gateway de VoIP avec le code suivant:
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
| <?php
// Url cible
$url="http://192.168.15.1/admin/resync?http//192.168.15.200/config.xml&xuser=admin&xpassword=admin";
// Le tableau associatif contenant les variables envoyées par POST au serveur
$options=array(
CURLOPT_URL => $url, // Url cible
CURLOPT_RETURNTRANSFER => true, // Retourner le contenu téléchargé dans une chaine
CURLOPT_HEADER => false, // Ne pas inclure l'entête de réponse du serveur dans la chaine retournée
CURLOPT_FAILONERROR => true // Gestion des codes d'erreur HTTP supérieurs ou égaux à 400
);
// Création d'un nouvelle ressource cURL
$CURL=curl_init();
// Erreur suffisante pour justifier un die()
if(empty($CURL)){die("ERREUR curl_init : Il semble que cURL ne soit pas disponible.")}
// Configuration des options de téléchargement
curl_setopt_array($CURL,$options);
// Exécution de la requête
$content=curl_exec($CURL); // Le contenu téléchargé est enregistré dans la variable $content
// Si il s'est produit une erreur lors du téléchargement
if(curl_errno($CURL)){
// Le message d'erreur correspondant est affiché
echo "ERREUR curl_exec : ".curl_error($CURL);
}
// Fermeture de la session cURL
curl_close($CURL);
?> |
192.168.15.1 -> @ip de la gateway
192.168.15.200 -> @ip de mon serveur web
Le script fonctionne bien, mais je voudrai utiliser cURL avec la méthode POST en ajoutant les deux options "CURLOPT_POST" et "CURLOPT_POSTFIELDS " avec le code suivant:
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
| <?php
// Url cible
$url="http://192.168.15.1/admin/resync?http//192.168.15.200/config.xml";
// Complétez le tableau associatif $postFields avec les variables qui seront envoyées par POST au serveur
$postFields=array(
"xuser" => "admin", // La variable xuser contenant la valeur admin
"xpassword" => "admin" // La variable xpassword contenant la valeur admin
);
// Le tableau associatif contenant les variables envoyées par POST au serveur
$options=array(
CURLOPT_URL => $url, // Url cible
CURLOPT_RETURNTRANSFER => true, // Retourner le contenu téléchargé dans une chaine
CURLOPT_HEADER => false, // Ne pas inclure l'entête de réponse du serveur dans la chaine retournée
CURLOPT_FAILONERROR => true, // Gestion des codes d'erreur HTTP supérieurs ou égaux à 400
CURLOPT_POST => true, // Effectuer une requête de type POST
CURLOPT_POSTFIELDS => $postFields // Le tableau associatif contenant les variables envoyées par POST au serveur
);
// Création d'un nouvelle ressource cURL
$CURL=curl_init();
// Erreur suffisante pour justifier un die()
if(empty($CURL)){die("ERREUR curl_init : Il semble que cURL ne soit pas disponible.")}
// Configuration des options de téléchargement
curl_setopt_array($CURL,$options);
// Exécution de la requête
$content=curl_exec($CURL); // Le contenu téléchargé est enregistré dans la variable $content
// Si il s'est produit une erreur lors du téléchargement
if(curl_errno($CURL)){
// Le message d'erreur correspondant est affiché
echo "ERREUR curl_exec : ".curl_error($CURL);
}
// Fermeture de la session cURL
curl_close($CURL);
?> |
Mais cela ne marche pas.
Merci.