Décomposer un échange
Une URL contient un protocole, un hôte, un chemin et parfois des paramètres après ?. Une requête ajoute une méthode, des en-têtes et éventuellement un corps. GET sert habituellement à lire ; POST à soumettre des données. JSON décrit des objets et des listes : une chaîne utilise des guillemets doubles, un nombre peut être sans guillemets. Vérifie toujours le sens des champs dans l’application.
Une première lecture
curl envoie une requête sans afficher l’interface du site. -i inclut les en-têtes de réponse ; -I envoie une requête HEAD, différente d’un GET. -H ajoute un en-tête. L’exemple ci-dessous demande un objet au format JSON dans un laboratoire déjà configuré. Sur Windows, curl.exe évite les ambiguïtés d’alias de certains PowerShell.
curl -i -H "Accept: application/json" "https://atelier.test/api/books/18"Lis d’abord le statut, puis Content-Type, puis le corps. 200 signale un succès HTTP ; 302 une redirection ; 401 une authentification absente ou invalide ; 403 un refus ; 404 une ressource introuvable ou masquée ; 429 une limite de requêtes. Le corps peut encore contenir une erreur applicative.
Envoyer et conserver le contexte
Pour un POST JSON avec curl, place le corps dans un fichier request.json, puis utilise --data-binary @request.json avec -H "Content-Type: application/json". Pour les cookies, -c cookies.txt enregistre ceux reçus et -b cookies.txt les renvoie. Un appel lancé dans ton terminal n’hérite pas automatiquement de la session du navigateur. Une redirection peut expliquer pourquoi tu reçois une page de connexion au lieu des données attendues. Compare d’abord la requête exacte avant d’ajouter des options.
Vérifie que tu as compris.
3 questions pour mettre les idées en pratique. Réponds avec tes mots, puis vérifie chaque réponse.
La correction repère les notions attendues et certaines formulations proches. Elle reste indicative : lis aussi l’explication. Tes réponses restent dans cette page et ne sont pas enregistrées.