Maison >développement back-end >tutoriel php >Comment effectuer une requête HTTP POST à ​​l'aide de PHP cURL ?

Comment effectuer une requête HTTP POST à ​​l'aide de PHP cURL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-29 20:47:18652parcourir

How to Perform an HTTP POST Request Using PHP cURL?

Exemple PHP cURL HTTP POST

Lorsque vous travaillez avec des applications Web, il est souvent nécessaire d'envoyer des requêtes HTTP à des serveurs distants. En PHP, l'extension cURL fournit un moyen puissant et polyvalent d'y parvenir. Cet article montre comment effectuer un HTTP POST à ​​l'aide de PHP cURL.

Énoncé du problème

Supposons que nous souhaitions envoyer les données suivantes à www.example.com :

username=user1, password=passuser1, gender=1

La réponse attendue du serveur est "result=OK".

Solution PHP cURL

Pour envoyer une requête HTTP POST avec PHP cURL, suivez ces étapes :

  1. Initialisez une session cURL à l'aide de curl_init() :
$ch = curl_init();
  1. Définissez le URL du serveur distant utilisant curl_setopt() :
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/tester.phtml");
  1. Indiquez qu'il s'agit d'une requête HTTP POST en utilisant CURLOPT_POST :
curl_setopt($ch, CURLOPT_POST, true);
  1. Créez les données POST à ​​l'aide de http_build_query() et définissez-les à l'aide de CURLOPT_POSTFIELDS :
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('postvar1' => 'value1')));
  1. Récupérez la réponse du serveur à l'aide de curl_exec() et définissez CURLOPT_RETURNTRANSFER sur true :
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec($ch);
  1. Fermez la session cURL en utilisant curl_close() :
curl_close($ch);
  1. Traitez la réponse du serveur comme vous le souhaitez :
if ($server_output == "OK") { ... } else { ... }

Exemple de code

Voici un exemple PHP complet qui démontre les étapes ci-dessus :

// A very simple PHP example that sends a HTTP POST to a remote site

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.example.com/tester.phtml");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 
          http_build_query(array('postvar1' => 'value1')));

// Receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec($ch);

curl_close($ch);

// Further processing ...
if ($server_output == "OK") { ... } else { ... }

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn