Faire une requête HTTP POST

Que ce soit pour remplir un formulaire automatiquement ou lancer un script à distance, la requête HTTP POST va permettre de passer des variables dans la requête HTTP.

La requête HTTP GET est utile mais rapidement, nus allons avoir besoin de faire passer des variables.

Faire une requête HTTP POST

Nous allons ouvrir un fichier ou script php et y saisir :

<?php

////////// PARAMS

// Complétez $url avec l'url cible (l'url de la page que vous voulez télécharger)
$url="www.mon_adresse.com";

// Complétez le tableau associatif $postFields avec les variables qui seront envoyées par POST au serveur
$postFields=array(nom_variale_1 => "variable_1",nom_variable_2 => "variable_2");

// Tableau contenant les options de téléchargement
$options=array(
      CURLOPT_URL            => $url,       // Url cible (l'url de la page que vous voulez télécharger)
      CURLOPT_RETURNTRANSFER => true,       // Retourner le contenu téléchargé dans une chaine (au lieu de l'afficher directement)
      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. Libre à vous de l'afficher.
	echo $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);
?>

Voilà, vouspouvez voir que l’on attend d’avoir le retour du contenu de la requête, ce qui n’est pas forcément adapté si vous devez lancer l’exécution d’un script qui peut prendre du temps.

N’hésitez pas à commenter et partager.

 

Laisser un commentaire