Cómo enviar el contenido del archivo como entidad corporal usando cURL

Resuelto Roy Hinkley asked hace 11 años • 4 respuestas

Estoy usando la utilidad de línea de comando cURL para enviar HTTP POST a un servicio web. Quiero incluir el contenido de un archivo como entidad del cuerpo de la POST. He intentado usar -d </path/to/filename>otras variantes con información de tipo como --data </path/to/filename> --data-urlencode </path/to/filename>etc... el archivo siempre está adjunto. Lo necesito como entidad corporal.

Roy Hinkley avatar Apr 10 '13 04:04 Roy Hinkley
Aceptado

Creo que estás buscando la @filenamesintaxis, por ejemplo:

quitar nuevas líneas

curl --data "@/path/to/filename" http://...

mantener nuevas líneas

curl --data-binary "@/path/to/filename" http://...

curl eliminará todas las nuevas líneas del archivo. Si desea enviar el archivo con nuevas líneas intactas, utilícelas --data-binaryen lugar de --data

Jeffrey Froman avatar Apr 09 '2013 21:04 Jeffrey Froman

Sé que la pregunta ha sido respondida, pero en mi caso estaba intentando enviar el contenido de un archivo de texto a la API de Slack Webhook y por alguna razón la respuesta anterior no funcionó. De todos modos, esto es lo que finalmente funcionó para mí:

curl -X POST -H --silent --data-urlencode "payload={\"text\": \"$(cat file.txt | sed "s/\"/'/g")\"}" https://hooks.slack.com/services/XXX
cookiedough avatar Jun 08 '2018 18:06 cookiedough