cURL est un outil très puissant qui permet de communiquer avec des API à distance en utilisant des protocoles tels que HTTP. Il est très souvent utilisé pour créer des scripts automatisés pour récupérer des données à partir d’un site web ou pour envoyer des données à un serveur.
En utilisant cURL en PHP, vous pouvez facilement envoyer des requêtes GET et POST, ajouter des en-têtes et des cookies, et bien plus encore.
Dans cet article, nous allons vous montrer comment utiliser cURL en PHP pour envoyer des requêtes GET, POST, ajouter des en-têtes et des cookies.
Envoyer des paramètres GET avec cURL en PHP
Pour créer des paramètres GET avec cURL en PHP, vous devez d’abord initialiser une nouvelle session cURL en utilisant la fonction curl_init(). Ensuite, vous devez définir l’URL de la requête en utilisant la fonction curl_setopt() et spécifier que vous voulez envoyer une requête GET.
Voici un exemple de code qui envoie une requête GET à l’URL http://www.example.com/get-data?param1=value1¶m2=value2:
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.example.com/get-data?param1=value1¶m2=value2");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
$result = curl_exec($curl);
curl_close($curl);
echo $result;
Envoyer des paramètres POST avec cURL en PHP
Afin d’ajouter des paramètres POST avec cURL en PHP, vous devez d’abord initialiser une nouvelle session cURL en utilisant la fonction curl_init(). Ensuite, vous devez définir l’URL de la requête en utilisant la fonction curl_setopt() et spécifier que vous voulez envoyer une requête POST. Vous devez également définir les paramètres POST à envoyer en utilisant la fonction curl_setopt().
Pour illustrer, je vais écrire de code qui envoie une requête POST à l’URL « http://www.example.com/post-data » avec les paramètres « param1=value1 » et « param2=value2 »:
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.example.com/post-data");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "param1=value1¶m2=value2");
$result = curl_exec($curl);
curl_close($curl);
echo $result;
Faire des en-têtes à une requête cURL en PHP
Pour mettre en place des en-têtes à une requête cURL en PHP, vous pouvez utiliser la fonction curl_setopt() pour définir les en-têtes à envoyer.
Nous allons écrire une requête cURL qui envoie une requête GET à l’URL http://www.example.com » avec un en-tête « X-Custom-Header: MyValue:
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.example.com/post-data");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "param1=value1¶m2=value2");
$result = curl_exec($curl);
curl_close($curl);
echo $result;
Ajouter des cookies à une requête cURL en PHP
Vous pouvez aussi ajouter des cookies à une requête cURL en PHP. Pour ce faire, vous pouvez utiliser la fonction curl_setopt() pour définir les cookies à envoyer.
Voici un exemple de code qui envoie une requête GET à l’URL « http://www.example.com » avec un cookie « MyCookie=MyValue« :
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.example.com");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_COOKIE, "MyCookie=MyValue");
$result = curl_exec($curl);
curl_close($curl);
echo $result;
?>
Comment utiliser l'authentification Bearer avec cURL en PHP
L’authentification Bearer est un mécanisme d’authentification couramment utilisé pour protéger les API. Il consiste à envoyer un jeton d’accès (généralement appelé Bearer token) dans l’en-tête d’autorisation de la requête. Ce jeton est généralement généré à l’aide d’un système d’authentification tiers, tel qu’OAuth2.
Le code suivant envoie une requête POST à l’URL « https://api.example.com/data » avec un jeton d’accès Bearer :
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.example.com/data");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "param1=value1¶m2=value2");
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Authorization: Bearer YOUR_ACCESS_TOKEN"));
$result = curl_exec($curl);
curl_close($curl);
echo $result;
?>
Nous utilisons la fonction curl_setopt() pour définir l’en-tête d’autorisation en utilisant l’option CURLOPT_HTTPHEADER. Il faut remplacer « YOUR_ACCESS_TOKEN » par le jeton d’accès réel que vous avez reçu. L’utilisation de cURL avec une authentification Bearer nécessite généralement de disposer d’un jeton valide et de l’intégrer correctement dans l’en-tête de la requête. Il faut s’assurer que le jeton est valide et qu’il n’a pas expiré. Il est également important de s’assurer que les données envoyées dans la requête sont sécurisées pour éviter les risques de piratage.
Options curl_setopt les plus couramment utilisées avec cURL en PHP
- CURLOPT_URL : Cette option permet de définir l’URL de la requête cURL. C’est l’option la plus importante à définir car elle spécifie l’emplacement où la requête doit être envoyée.
- CURLOPT_RETURNTRANSFER : Cette option permet de spécifier que la réponse de la requête cURL doit être renvoyée sous forme de chaîne plutôt que d’être envoyée directement à la sortie standard. Cela permet de stocker la réponse dans une variable pour une utilisation ultérieure.
- CURLOPT_CUSTOMREQUEST : Cette option permet de spécifier la méthode de requête à utiliser. Les valeurs possibles incluent « GET », « POST », « PUT » et « DELETE ».
- CURLOPT_POSTFIELDS : Cette option permet de définir les données à envoyer lors de l’utilisation de la méthode de requête POST. Les données peuvent être spécifiées sous forme de chaîne ou de tableau.
- CURLOPT_HTTPHEADER : Cette option permet de définir les en-têtes à envoyer avec la requête. Les en-têtes doivent être spécifiés sous forme de tableau.
- CURLOPT_COOKIE : Cette option permet de définir les cookies à envoyer avec la requête. Les cookies doivent être spécifiés sous forme de chaîne.
- CURLOPT_SSL_VERIFYPEER : Cette option permet de désactiver la vérification des certificats SSL. Il est généralement recommandé de laisser cette option activée pour assurer la sécurité de la connexion.
Il existe de nombreuses autres options disponibles pour cURL, mais ces options-ci sont celles qui sont les plus couramment utilisées pour envoyer des requêtes cURL en PHP. En utilisant ces options avec les exemples de code précédents, vous devriez être en mesure de créer des scripts cURL personnalisés pour répondre à vos besoins spécifiques.
Conclusion
En conclusion, cURL est un outil puissant qui permet de communiquer avec des serveurs à distance en utilisant des protocoles tels que HTTP, FTP, etc. En utilisant cURL en PHP, vous pouvez facilement envoyer des requêtes GET et POST, ajouter des en-têtes et des cookies, et bien plus encore