Respuestas:
De forma predeterminada, usa curl sin decir explícitamente qué método de solicitud usar. Si solo pasa una URL HTTP como curl http://example.com, usará GET. Si usa -do -Fcurl usará POST, -Icausará un HEAD y -Tlo convertirá en PUT.
Si por alguna razón no está satisfecho con estas opciones predeterminadas que curl hace por usted, puede anular esos métodos de solicitud especificando -X [WHATEVER]. De esta forma puede, por ejemplo, enviar un DELETE haciendo curl -X DELETE [URL].
Por lo tanto, no tiene sentido hacer curl -X GET [URL]lo que se usaría GET de todos modos. En la misma línea, no tiene sentido hacerlo. curl -X POST -d data [URL]...Pero puede hacer una solicitud divertida y algo rara que envíe un cuerpo de solicitud en una solicitud GET con algo como curl -X GET -d data [URL].
curl -GET(usando un solo guión) es simplemente incorrecto para este propósito. Eso es el equivalente a especificar las opciones -G, -Ey -Ty eso hará algo completamente diferente.
También hay una opción de curl llamada --getpara no confundir las cosas con ninguno de los dos. Es la forma larga de -G, que se utiliza para convertir los datos especificados con -den una solicitud GET en lugar de POST.
(Posteriormente utilicé mi propia respuesta aquí para completar las preguntas frecuentes de curl para cubrir esto ).
Las versiones modernas de curl informarán a los usuarios sobre este uso innecesario y potencialmente dañino de -X cuando el modo detallado está habilitado ( -v) - para que los usuarios estén al tanto. Más explicado y motivado en esta publicación de blog .
Puede pedirle a curl que convierta un conjunto de -dopciones y, en lugar de enviarlas en el cuerpo de la solicitud con POST, colóquelas al final de la cadena de consulta de la URL y emita un GET, con el uso de `-G. Me gusta esto:
curl -d name=daniel -d grumpy=yes -G https://example.com/
El uso de -X [WHATEVER]simplemente cambia la cadena de método de la solicitud utilizada en la solicitud HTTP. Esto es más fácil de entender con dos ejemplos, uno con -X [WHATEVER]y otro sin, y los encabezados de solicitud HTTP asociados para cada uno:
# curl -XPANTS -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.224.86.126) port 80 (#0)
> PANTS / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*
# curl -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.33.50.167) port 80 (#0)
> GET / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*