Outils pour utilisateurs

Outils du site


informatique:curl

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique:curl [2023/03/07 09:50] bertrandinformatique:curl [2024/02/21 08:25] (Version actuelle) – [HTTP POST] bertrand
Ligne 5: Ligne 5:
 https://linuxize.com/post/curl-rest-api/ https://linuxize.com/post/curl-rest-api/
  
-Voir aussi [[informatique:insomnia|Insomnia]]+quelques extraits traduits : 
 + 
 +<note>Les exemples ont recourt à https://jsonplaceholder.typicode.com/guide/, une API de test</note> 
 + 
 +==== HTTP POST ==== 
 + 
 +La méthode POST est utilisée pour créer une ressource sur le serveur. Si la ressource existe, elle est écrasée. 
 + 
 +La commande suivante permet d'exécuter une requête POST utilisant des données précisées via l'option //-d// : 
 + 
 +<code bash> 
 +curl -X POST -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts 
 +</code> 
 + 
 +Le type du corps de la requête est défini par l'en-tête //Content-Type//. Par défaut, notamment si non précisé, curl utilisera //Content-Type: application/x-www-form-urlencoded//
 + 
 +Pour envoyer des données formatés au format JSON, il faut définir le type à //application/json//
 +<code bash> 
 +curl -X POST \ 
 +    -H "Content-Type: application/json"
 +    -d '{"userId": 5, "title": "Hello World", "body": "Post body."}'
 +    https://jsonplaceholder.typicode.com/posts 
 +# ou plus simplement src : https://daniel.haxx.se/blog/2022/02/02/curl-dash-dash-json/ 
 +# ne fonctionne pas avec curl v7.81 sous ubuntu 22.04 
 +curl --json '{"userId": 5, "title": "Hello World", "body": "Post body."}' https://jsonplaceholder.typicode.com/posts 
 +</code> 
 + 
 +Pour utiliser un token de sécurité et préciser que notre paramètre JSON est un objet : 
 +<code bash> 
 +curl -X POST 
 +    -H "Authorization: Bearer $TOKEN"
 +    -H "Content-Type: application/json"
 +    -H "Prefer: params=single-object"
 +    -d '{"userId": 5, "title": "Hello World", "body": "Post body."}'
 +    https://mon-web-service.mon-domaine.fr/rpc/ma-fonction 
 +</code> 
 + 
 +<note important>le token doit être mémorisé au préalable dans la variable d'environnement : 
 +<code bash>export TOKEN="eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoic2lnX3VzZXIifQ.Q5gbPnMVYUwSxdjFzU3aMm2RVUAXN5dyfCc8__OVFaI"</code> 
 +</note> 
 + 
 +===== Voir aussi ===== 
 +  * [[https://curl.se/]] 
 +  * [[informatique:insomnia|Insomnia]] 
 +  * [[https://jsonplaceholder.typicode.com|JSONPlaceholder, serveur REST pour faire des tests]] 
 +  * [[informatique:api-rest:postgrest]] 
 +  * [[https://developer.mozilla.org/fr/docs/Web/API/Fetch_API|fetch api pour l'accès depuis un programme]]
informatique/curl.1678179019.txt.gz · Dernière modification : 2023/03/07 09:50 de bertrand