Con campos:
curl --data "param1=value1¶m2=value2" https://example.com/resource.cgi
Con campos especificados individualmente:
curl --data "param1=value1" --data "param2=value2" https://example.com/resource.cgi
Multiparte:
curl --form "[email protected]" https://example.com/resource.cgi
Multiparte con campos y un nombre de archivo:
curl --form "[email protected];filename=desired-filename.txt" --form param1=value1 --form param2=value2 https://example.com/resource.cgi
Sin datos:
curl --data '' https://example.com/resource.cgi
curl -X POST https://example.com/resource.cgi
curl --request POST https://example.com/resource.cgi
Para más información consulte el manual de cURL. El tutorial de cURL sobre la emulación de un navegador web es útil.
Con libcurl, utilice la función curl_formadd()
para construir su formulario antes de enviarlo de la forma habitual. Vea la documentación de libcurl para más información.
Para archivos grandes, considere añadir parámetros para mostrar el progreso de la subida:
curl --tr-encoding -X POST -v -# -o output -T filename.dat \
http://example.com/resource.cgi
La salida -o
es necesaria, de lo contrario no aparecerá ninguna barra de progreso.
Para un RESTful HTTP POST que contiene XML:
...que contiene XML:..;
curl -X POST -d @nombre-de-fichero.txt http://example.com/path/to/resource --header "Content-Type:text/xml"
o para JSON, usa esto:
;
curl -X POST -d @nombre_de_fichero.txt http://example.com/path/to/resource --header "Content-Type:application/json"`
Esto leerá el contenido del archivo llamado "nombre de archivo.txt" y lo enviará como la solicitud de post.
Datos de la ETS con "D" en el nombre de "D "
Ejemplo:
echo '{"text": "Hello **world**!"}' | curl -d @- https://api.github.com/markdown
Salida:
<p>Hello <strong>world</strong>!</p>
curl -d "name=Rafael%20Sagula&phone=3320780" http://www.where.com/guest.cgi
es el ejemplo que se encuentra en el Manual de Ejemplos de Rizos.
Utilice %26 para los ampersands si lo anterior no funciona:
curl -d "name=Rafael%20Sagula%26phone=3320780" http://www.where.com/guest.cgi
Si quieres entrar en un sitio, haz lo siguiente:
curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/
La primera solicitud guarda la cookie de sesión (que se proporciona al iniciar sesión con éxito) en el "headers" archivo. A partir de ahora puede utilizar esa cookie para autenticarse en cualquier parte del sitio web al que acceda habitualmente después de iniciar sesión con un navegador.
curl -v --data-ascii var=value http://example.com
y hay muchas más opciones, consulte curl --help
para más información.
Si eres perezoso, puedes hacer que Google Chrome haga todo el trabajo por ti.
[![devtools de cromo: copiar como cURL][1]][1]
Chrome copiará todos los datos de la solicitud en la sintaxis de la cURL.
Chrome utiliza --datos 'param1=hello¶m2=world'
que puede hacer más legibles utilizando una sola -d
o -F
por parámetro dependiendo del tipo de petición POST que quiera enviar, que puede ser o bien aplicación/x-www-form-urlencoded
o multiparte/form-data
en consecuencia.
Esto será POST-ed como "application/x-www-form-urlencoded" (utilizado para la mayoría de las formas que no contienen archivos subidos):
¡¡¡Lenguaje!!! lang-bash -- --..;
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-d param1=hello \
-d name=dinsdale
Para un POST "multiparte/datos de forma" utilice "F" (típicamente utilizado con formularios que contienen subidas de archivos, o donde el orden de los campos es importante, o donde se requieren múltiples campos con el mismo nombre):
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-F param1=hello \
-F name=dinsdale \
-F name=piranha
Normalmente no se necesita el encabezado de "Agente-Usuario", pero lo he tirado por si acaso.
Puedes evitar tener que poner el agente de usuario en cada petición creando el archivo ~/.curlrc
que contiene, por ejemplo.
Agente de usuario: "Mozilla/2.2"
</sup..;