que estoy tratando de pasar la salida cat
para rizar:tubería uso de datos enrollamiento
$ cat file | curl --data '{"title":"mytitle","input":"-"}' http://api
Pero input
es literalmente un -
.
que estoy tratando de pasar la salida cat
para rizar:tubería uso de datos enrollamiento
$ cat file | curl --data '{"title":"mytitle","input":"-"}' http://api
Pero input
es literalmente un -
.
Trate
curl --data '{"title":"mytitle","input":"'$(cat file)'-"}' http://api
Pasé un tiempo tratando de resolver esto y tengo trabajo con lo siguiente:
cat data.json | curl -H "Content-Type: application/json" -X POST -d @- http://api
el problema es que el contenido del archivo será el valor de 'input' en los datos JSON. – Michelle
Usted puede utilizar el archivo de entrada estándar mágica /dev/stdin
cat data.json | curl -H "Content-Type: application/json" -X POST -d "$(</dev/stdin)" http://api
Esto también debería funcionar
curl -H "Content-Type: application/json" -d @data.json http://api
Usando -d fuerza el curl para usar implícitamente POST para la solicitud.
Curl documentation for -d
option
Si inicia los datos con la letra @, el resto debe ser un nombre de archivo para leer los datos de, o - si quieres rizo para leer los datos de la entrada estándar. Múltiples archivos también pueden ser especificados. La publicación de datos de un archivo llamado 'foobar' se haría con -d, --data @foobar. Cuando --data se le dice que lea de un archivo como ese, los retornos de carro y las nuevas líneas serán eliminados. Si no desea que el carácter @ tenga una interpretación especial, use --data-raw en su lugar.
Dependiendo de su extremo HTTP, la configuración del servidor, debe ser bueno usando este formato:
curl -d @data.json http://api
No estoy seguro de si hay un formato especial aquí, de lo contrario esto podría ser lo desea: http://serverfault.com/questions/313599/how-doi-i-pipe-the-output-of-uptime-df-to-curl – thomasa88