Comment effectuer des requêtes HTTP avec curl
Le protocole de transfert hypertexte (HTTP) est l’épine dorsale de la communication sur Internet, permettant le transfert de données entre les serveurs et les clients. Cependant, l’interaction avec les points d’extrémité HTTP peut s’avérer difficile, en particulier pour les débutants.
Heureusement, curl, un outil en ligne de commande, offre un moyen simple et efficace d’envoyer et de recevoir des requêtes HTTP. Vous apprendrez ici à utiliser curl pour effectuer des requêtes HTTP POST, GET, DELETE et PUT de base.
Installation de curl
Par défaut, curl est installé sur les principaux systèmes d’exploitation, notamment macOS, Linux et Unix.
Vous pouvez confirmer que curl est installé en exécutant la commande ci-dessous :
La commande ci-dessus devrait afficher « try ‘curl –help’ or ‘curl –manual’ for more information » sur votre terminal.
Si curl n’est pas installé sur votre système d’exploitation, vous pouvez le télécharger et l’installer à l’adresse suivante la page de téléchargement de curl.
Effectuer une requête HTTP GET
Une requête HTTP GET est une méthode permettant de demander des données à un serveur web. Vous pouvez utiliser ces requêtes pour récupérer une ressource spécifique, telle qu’une page web, une image ou une vidéo.
Vous pouvez effectuer une requête GET avec curl dans le format ci-dessous :
Remplacer <URL> par l’URL de la ressource que vous souhaitez récupérer.
Par exemple :
L’exécution de la commande ci-dessus génère une requête HTTP GET à l’URL https://example.com/todos/1. Le paramètre -X GET spécifie que la méthode HTTP est GET. Lorsque la commande est exécutée, curl envoie une requête GET au serveur spécifié dans l’URL et attend la réponse du serveur.
Si le serveur répond avec un code d’état « successful », curl envoie une requête GET au serveur spécifié dans l’URL et attend la réponse du serveur, curl affiche le corps de la réponse dans le terminal, qui, dans ce cas, serait les données JSON concernant un élément de tâche avec un ID de 1.
Vous pouvez également effectuer une requête GET sans spécifier l’attribut -X car, par défaut, curl effectue une requête GET lorsque vous ne spécifiez pas de méthode de requête avec l’option -X avec l’indicateur -X
Par exemple :
L’exécution de la commande ci-dessus renverra la même réponse que la commande précédente avec l’indicateur » -X GET « .
Effectuer une requête HTTP POST
Une requête HTTP POST est une méthode d’enregistrement de données sur un serveur web. Contrairement à une requête GET, qui envoie les données dans le cadre de l’URL, une requête POST envoie les données dans le corps du message de la requête. Les requêtes POST sont donc plus sûres pour la transmission d’informations sensibles.
Vous pouvez effectuer une requête POST avec curl dans le format ci-dessous :
Par exemple :
La commande ci-dessus envoie une requête POST à https://example.com/users avec les données spécifiées par l’élément -d comme charge utile.
Les -d spécifie les données à envoyer. Dans ce cas, il spécifie deux paramètres de données : name=jack et [email protected].
Lorsque vous utilisez l’option -d plus d’une fois dans une commande, vous pouvez fusionner les champs à l’aide de l’option & pour fusionner les champs.
Par exemple :
Certaines données que vous pouvez essayer d’envoyer dans une requête POST peuvent être difficiles à faire tenir dans une seule chaîne de caractères dans votre terminal. Dans ce cas, l’idéal est de lire et d’envoyer les données à partir d’un fichier à l’aide de curl.
Pour envoyer les données d’un fichier dans une requête POST en tant que charge utile avec curl, utilisez l’option @ immédiatement après le signe -d suivi du chemin d’accès au fichier que curl doit envoyer dans la requête.
Par exemple :
Spécification du type de contenu (Content-Type)
Utilisation du type de contenu -d définit automatiquement l’en-tête Content-Type à application/x-www-form-urlencoded. Cependant, vous pouvez spécifier manuellement le type de contenu approprié pour votre requête en utilisant l’en-tête -H ou –en-tête suivi du type de contenu souhaité.
Par exemple :
Dans la commande ci-dessus, l’indicateur -H spécifie l’en-tête Content-Type comme suit Content-Type : application/json.
Vous pouvez remplacer application/json par tout autre type MIME ou type de contenu valide correspondant aux données que vous envoyez dans le corps de la demande. Par exemple, lorsque vous téléchargez des données binaires, telles qu’une image ou un fichier audio, vous devez définir le type de contenu (Content-Type) comme suit multipart/form-data
Cela vous permet de spécifier le format attendu des données envoyées, ce qui peut être important lorsque vous interagissez avec des API ou des services web nécessitant des types de contenu spécifiques pour un traitement correct.
Effectuer une requête HTTP PUT
Une requête HTTP PUT est une méthode permettant de mettre à jour une ressource existante sur un serveur web ou d’en créer une si la ressource n’existe pas. Cette méthode diffère de la méthode POST dans le sens où elle est idempotente. Cela signifie que l’appel à la méthode PUT une fois ou plusieurs fois successivement a le même effet sur le serveur.
Vous pouvez effectuer une requête PUT avec curl dans le format ci-dessous :
La commande ci-dessus envoie une requête PUT au format JSON au serveur web spécifié dans l’URL ci-dessus et met à jour la ressource spécifiée. Si la ressource spécifiée n’existe pas, elle la créera sur le serveur web.
Formulation d’une requête HTTP DELETE
Une requête HTTP DELETE est une méthode permettant de supprimer une ressource spécifiée d’un serveur web. Comme les requêtes PUT, les requêtes DELETE sont idempotentes. L’envoi de la même requête DELETE plusieurs fois à la même ressource produira le même résultat sur le serveur.
Vous pouvez effectuer une requête DELETE avec curl en exécutant la commande ci-dessous :
La commande ci-dessus envoie une requête DELETE au serveur web spécifié dans l’URL ci-dessus et supprime la ressource spécifiée.
Les requêtes de suppression suppriment définitivement la ressource spécifiée du serveur. Par conséquent, un serveur web qui prend en charge la fonction DELETE exige généralement une forme d’authentification ou d’autorisation avant que vous ne puissiez effectuer cette demande.
Voici comment effectuer une requête DELETE avec un en-tête d’autorisation :
La commande ci-dessus fournit les informations d’authentification dans l’en-tête de la requête en utilisant la méthode d’authentification Bearer avec l’option -H . Autorisation : Bearer my_access_token est la valeur de l’en-tête.my_access_token est un espace réservé pour la valeur réelle de votre jeton d’accès.
Autres façons d’effectuer des requêtes HTTP
En dehors de curl, il existe de nombreuses façons de faire des requêtes HTTP en fonction du contexte de la requête. Les méthodes les plus courantes sont l’utilisation d’un navigateur web comme Chrome, d’un outil d’interface graphique comme Postman ou d’un client API.
Chacune de ces options présente des avantages et des inconvénients. En fin de compte, le choix d’un outil dépendra des exigences de votre tâche.
S’abonner à notre lettre d’information
Comment obtenir une réponse HTTP en utilisant Curl ?
Comment obtenir le statut HTTP d’un site à l’aide de cURL ?
- Présentation. cURL est un utilitaire standard de facto sous Linux qui permet de se connecter et de transférer des données à partir d’URL.
- Utilisation de l’option -head.
- Utilisation de l’option -include.
- Utilisation de l’option -write-out.
- Gestion de la redirection.
- Conclusion.
Comment envoyer des requêtes API en utilisant Curl ?
Comment utiliser CURL pour envoyer des requêtes API ?
- Le point de terminaison. Il s’agit de l’URL à laquelle nous envoyons des requêtes.
- La méthode HTTP. L’action que nous voulons effectuer.
- Les en-têtes. Les en-têtes que nous voulons envoyer avec notre demande, par exemple l’en-tête d’autorisation.
- Le corps. Les données que nous voulons envoyer à l’api.
Quel type de requête HTTP est Curl ?
‘cURL’ est un outil de ligne de commande qui vous permet de transmettre des requêtes HTTP et de recevoir des réponses à partir de la ligne de commande ou d’un script shell. Il est disponible pour les distributions Linux, Mac OS X et Windows. Pour utiliser cURL afin d’exécuter votre appel d’API web REST, utilisez la syntaxe de la commande cURL pour construire la commande.
- 00:38Introduction à Curl
- 01:32Installation de curl
- 02:31Requête HTTP par défaut
- 03:05Demande HTTP
- 04:42Erreurs
- 05:22Demande d’entrée
- 06:26Spécifier la route
- 07:38Patching d’un seul attribut
- 09:21Supprimer une requête
- 10:20Outro