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:
<?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 gateway192.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:
<?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.