http - descargar - que es un comando curl
Enviar solicitud POST con datos especificados en archivo a través de Curl (3)
Necesito hacer una solicitud de POST a través de Curl desde la línea de comando. Los datos para esta solicitud se encuentran en un archivo ...
Otras respuestas parecen innecesariamente complicadas. Todo lo que necesita hacer es que el argumento --data
comience con un @
:
curl -H "Content-Type: text/xml" --data "@path_of_file" host:port/post-file -path
Por ejemplo, si tiene los datos en un archivo llamado stuff.xml
entonces haría algo como:
curl -H "Content-Type: text/xml" --data "@stuff.xml" host:port/post-file-path
El stuff.xml
archivo stuff.xml
se puede reemplazar por una ruta relativa o completa al archivo: @../xml/stuff.xml
, @/var/tmp/stuff.xml
, ...
Necesito hacer una solicitud de POST a través de Curl desde la línea de comando. Los datos para esta solicitud se encuentran en un archivo. Sé que a través de PUT esto podría hacerse con la opción --upload-file
.
curl host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
Está buscando el argumento --data-binary
:
curl -i -X POST host:port/post-file /
-H "Content-Type: text/xml" /
--data-binary "@path/to/file"
En el ejemplo anterior, -i
imprime todos los encabezados para que pueda ver lo que está sucediendo, y -X POST
hace explícito de que se trata de una publicación. Ambos pueden omitirse de manera segura sin cambiar el comportamiento en el cable. La ruta al archivo debe ir precedida de un símbolo @
, por lo que curl
sabe leer de un archivo.
Si está utilizando datos de formularios para cargar archivos, en los que debe especificarse un nombre de parámetro, puede usar:
curl -X POST -i -F parametername=@filename host:port/xxx