De este enlace he sacado estos comentarios, pero vienen casi todos los casos habituales, con explicaciones muy detalladas.
Casi todos los casos útiles de curl, descritos con ejemplos. Muy completos.
Un formulario GET utiliza el método GET, como se especifica en HTML como:
<form method="GET" action="junk.cgi">
<input type=text name="birthyear">
<input type=submit name=press value="OK">
</form>
En su navegador favorito, este formulario aparecerá con un cuadro de texto para completar y un botón de presión con la etiqueta "Aceptar". Si completa '1905' y presiona el botón Aceptar, su navegador creará una nueva URL para usted.
La URL se agregará junk.cgi?birthyear=1905&press=OK
a la parte de la ruta de la URL anterior.
Si el formulario original se vio en la página www.example.com/when/birth.html
, la segunda página que obtendrá se convertirá en www.example.com/when/junk.cgi?birthyear=1905&press=OK
.
La mayoría de los motores de búsqueda funcionan de esta manera.
Para hacer que curl haga la publicación del formulario GET por usted, simplemente ingrese la URL creada esperada:
curl "http://www.example.com/when/junk.cgi?birthyear=1905&press=OK"
El método GET hace que todos los nombres de los campos de entrada se muestren en el campo URL de su navegador. Por lo general, eso es bueno cuando desea poder marcar esa página con sus datos proporcionados, pero es una desventaja obvia si ingresó información secreta en uno de los campos o si hay una gran cantidad de campos que crean una URL larga e ilegible.
El protocolo HTTP luego ofrece el método POST. De esta manera, el cliente envía los datos separados de la URL y, por lo tanto, no verá nada en el campo de dirección URL.
El formulario sería similar al anterior:
<form method="POST" action="junk.cgi">
<input type=text name="birthyear">
<input type=submit name=press value=" OK ">
</form>
Y para usar curl para publicar este formulario con los mismos datos que antes, podríamos hacerlo así:
curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/when/junk.cgi
Este tipo de POST utilizará el tipo de contenido application/x-www-form-urlencoded
y es el tipo de POST más utilizado.
Los datos que envíe al servidor ya DEBEN estar codificados correctamente, curl no lo hará por usted. Por ejemplo, si desea que los datos contengan un espacio, debe reemplazar ese espacio con %20
, etc. Si no cumple con esto, lo más probable es que sus datos se reciban incorrectamente y se estropeen.
Las versiones recientes de curl pueden, de hecho, codificar en URL los datos POST para usted, así:
curl --data-urlencode "name=I am Daniel" http://www.example.com
Si repite --data
varias veces en la línea de comando, curl concatenará todos los datos proporcionados y colocará un &
símbolo entre cada segmento de datos.