Par défaut, vous utilisez curl sans spécifier explicitement la méthode de requête à utiliser. Si vous passez simplement une URL HTTP comme curl http://exemple.com
, cela utilisera GET. Si vous utilisez -d
ou -F
, curl utilisera POST, -I
provoquera un HEAD et -T
le transformera en PUT.
Si, pour une raison quelconque, vous n'êtes pas satisfait de ces choix par défaut que curl fait pour vous, vous pouvez remplacer ces méthodes de requête en spécifiant -X [CE QUE VOUS VOULEZ]
. Vous pouvez ainsi par exemple envoyer une requête DELETE en faisant curl -X DELETE [URL]
.
Il est donc inutile de faire curl -X GET [URL]
car GET serait utilisé de toute façon. De même, il est inutile de faire curl -X POST -d données [URL]
Mais vous pouvez faire une demande amusante et quelque peu rare qui envoie un corps de requête dans une demande GET avec quelque chose comme curl -X GET -d données [URL]
.
Aller plus loin
curl -GET
(en utilisant un seul tiret) est tout simplement incorrect pour cette fin. C'est l'équivalent de spécifier les options -G
, -E
et -T
et cela fera quelque chose de complètement différent.
Il y a aussi une option curl appelée --get
pour ne pas embrouiller les choses avec la longue forme de -G, qui est utilisée pour convertir les données spécifiées avec -d
en une requête GET au lieu d'une POST.
(J'ai ensuite utilisé ma propre réponse ici pour alimenter la FAQ curl afin de couvrir ce sujet.)
Avertissements
Les versions modernes de curl informeront les utilisateurs de cet usage inutile et potentiellement dangereux de -X lorsque le mode verbeux est activé (-v
) - pour sensibiliser les utilisateurs. Plus amplement expliqué et motivé dans ce billet de blog.
-G convertit un POST + corps en un GET + requête
Vous pouvez demander à curl de convertir un ensemble d'options -d
et au lieu de les envoyer dans le corps de la requête avec POST, de les mettre à la fin de la chaîne de requête de l'URL et d'émettre un GET, avec l'utilisation de `-G. Comme ceci:
curl -d nom=daniel -d grognon=oui -G https://exemple.com/