L'outil de ligne de commande curl est un assistant parfait lorsque vous travaillez avec du code HTTP. Testez les requêtes, explorez les formats de données, et plus encore !

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 de terminaison HTTP peut être difficile, en particulier pour les débutants.

Heureusement, curl, un outil de ligne de commande, fournit un moyen simple et efficace d'envoyer et de recevoir des requêtes HTTP. Ici, vous apprendrez à 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 :

boucle

La commande ci-dessus devrait afficher "essayez 'curl --help' ou 'curl --manual' pour plus d'informations" sur votre terminal.

instagram viewer

Si curl n'est pas installé sur votre système d'exploitation, vous pouvez le télécharger et l'installer à partir de la page de téléchargement de curl.

Faire une requête HTTP GET

Une requête HTTP GET est une méthode pour 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 faire une requête GET avec curl au format ci-dessous :

boucle -X GET 

Remplacer avec l'URL de la ressource que vous souhaitez récupérer.

Par exemple:

boucle -X GET https://example.com/todos/1

L'exécution de la commande ci-dessus envoie une requête HTTP GET à l'URL https://example.com/todos/1. Le -X OBTENIR L'option spécifie que la méthode HTTP est GET. Lorsque la commande s'exécute, 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 par un code d'état réussi, boucle 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.

Alternativement, vous pouvez faire une requête GET sans spécifier le -X flag car, par défaut, curl effectue une requête GET lorsque vous ne spécifiez pas de méthode de requête avec le -X drapeau.

Par exemple:

boucle https://example.com/todos/1

L'exécution de la commande ci-dessus renverra la même réponse que la commande précédente avec le "-X OBTENIR" drapeau.

Faire une requête HTTP POST

Une requête HTTP POST est une méthode pour enregistrer des données sur un serveur Web. Contrairement à une requête GET, qui envoie des données dans le cadre de l'URL, une requête POST envoie des données dans le corps du message de la requête. Cela rend les requêtes POST plus sûres pour la transmission d'informations sensibles.

Vous pouvez faire une requête POST avec curl au format ci-dessous :

boucle -X POST -d 

Par exemple:

curl -X POST -d 'nom=jack' -d '[email protected]' \
 https://example.com/users

La commande ci-dessus envoie une requête POST à https://example.com/users avec les données spécifiées par le -d flag comme charge utile.

Le -d flag spécifie les données à envoyer. Dans ce cas, il a spécifié deux paramètres de données: nom=jack et [email protected].

Lorsque vous utilisez le -d drapeau plus d'une fois dans une commande, vous pouvez fusionner les champs à l'aide du symbole &.

Par exemple:

curl -d "nom=jack&[email protected]" https://example.com/api/users

Certaines données que vous pourriez essayer d'envoyer dans une requête POST peuvent être difficiles à intégrer dans une seule chaîne de votre terminal. Dans de tels cas, il peut être idéal de lire et de publier les données d'un fichier à l'aide de curl.

Pour envoyer des données à partir d'un fichier dans une requête POST en tant que charge utile avec curl, utilisez le @ signer immédiatement après le -d flag, suivi du chemin d'accès au fichier que vous voulez que curl envoie dans la requête.

Par exemple:

curl -X POST -d @users.txt https://example.com/api/users

Spécification du type de contenu

En utilisant le -d flag définit automatiquement l'en-tête Content-Type sur application/x-formulaire-www-urlencodé. Cependant, vous pouvez spécifier manuellement le type de contenu approprié pour votre demande à l'aide de la -H ou --entête suivi du type de contenu souhaité.

Par exemple:

curl -H "Type de contenu: application/json" \
 -d '{"nom": "Jack", "email": "[email protected]"}' \
 https://example.com/api/users

Dans la commande ci-dessus, le -H flag spécifie l'en-tête Content-Type comme Type de contenu: application/json.

Vous pouvez remplacer application/json avec tout autre type MIME valide ou type de contenu approprié pour les données que vous envoyez dans le corps de la requête. Par exemple, lors du téléchargement de données binaires, telles qu'une image ou un fichier audio, vous devez définir le type de contenu sur multipart/form-data.

Cela vous permet de spécifier le format attendu des données envoyées, ce qui peut être important lors de l'interaction avec des API ou des services Web nécessitant des types de contenu spécifiques pour un traitement correct.

Faire une requête HTTP PUT

Une requête HTTP PUT est une méthode pour mettre à jour une ressource existante sur un serveur Web ou en créer une si la ressource n'existe pas. Cette méthode diffère de la méthode POST en ce sens qu'elle est idempotente. Cela signifie qu'appeler la méthode PUT une ou plusieurs fois successivement a le même effet sur le serveur.

Vous pouvez faire une requête PUT avec curl au format ci-dessous :

curl -X PUT -H "Type de contenu: application/json" \
 -d '{"nom": "Jack Bauer", "email": "[email protected]"}' \
 https://example.com/api/users/4

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, il créera la ressource sur le serveur Web.

Faire une requête HTTP DELETE

Une requête HTTP DELETE est une méthode pour supprimer une ressource spécifiée d'un serveur Web. Semblables aux requêtes PUT, les requêtes DELETE sont idempotentes. Envoyer plusieurs fois la même requête DELETE à 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 :

boucle -X SUPPRIMER http://example.com/api/users/3

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 demandes de suppression suppriment définitivement la ressource spécifiée du serveur. Ainsi, un serveur Web qui prend en charge le DELETE nécessite généralement une forme de authentification ou autorisation avant de pouvoir faire cette demande.

Voici comment effectuer une requête DELETE avec un en-tête d'autorisation :

curl -X DELETE -H "Autorisation: Bearer my_access_token" \
 https://example.com/api/users/3

La commande ci-dessus fournit les informations d'authentification dans l'en-tête de la demande à l'aide de la méthode d'authentification Bearer avec la -H drapeau. Autorisation: Porteur my_access_token est la valeur d'en-tête. mon_jeton_d'accès est un espace réservé pour la valeur réelle de votre jeton d'accès.

Autres façons de faire des requêtes HTTP

Outre curl, il existe plusieurs façons de faire des requêtes HTTP en fonction du contexte de la requête. Les méthodes les plus courantes incluent l'utilisation d'un navigateur Web tel que Chrome, d'un outil graphique tel que Postman ou d'un client API.

Chacune de ces options a ses avantages et ses inconvénients. En fin de compte, votre choix d'un outil dépendra des exigences de votre tâche.