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 -d
o -F
curl usará POST, -I
causará un HEAD y -T
lo 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
, -E
y -T
y eso hará algo completamente diferente.
También hay una opción de curl llamada --get
para no confundir las cosas con ninguno de los dos. Es la forma larga de -G, que se utiliza para convertir los datos especificados con -d
en 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 -d
opciones 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: */*