我正在使用curl将数据发布到接受CSV的JAX-RS REST API。
此命令正常工作:
curl -X POST -H 'Content-Type: text/csv' -d '
"name","age"
"Abe","35"
"Bob","40"
' $url
我可以看到数据到达API。
但是,如果我将数据保存在一个称为payload.csv的文件中,并像这样发布:
curl -X POST -H 'Content-Type: text/csv' -d @payload.csv $url
数据未到达API。两者有什么区别?
答案 0 :(得分:0)
图我需要使用--data-binary
发布文件数据,就像这样:
curl -X POST -H 'Content-Type: text/csv' --data-binary @payload.csv $url
-数据二进制
(HTTP)这将完全按照指定的方式发布数据,而无需额外的处理 一切。
如果您以字母@开头的数据,其余应为 文件名。数据的发布方式与-d,--data相似, 除了保留换行符和回车符, 转换永远不会完成。
因此-d
选项在发布文件时会删除换行符和回车符!