来自文件的数据和直接输入之间的卷曲差异

时间:2018-09-18 00:24:57

标签: rest csv curl post

我正在使用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。两者有什么区别?

1 个答案:

答案 0 :(得分:0)

图我需要使用--data-binary发布文件数据,就像这样:

curl -X POST -H 'Content-Type: text/csv' --data-binary @payload.csv $url

来自curl documentation

  

-数据二进制

     

(HTTP)这将完全按照指定的方式发布数据,而无需额外的处理   一切。

     

如果您以字母@开头的数据,其余应为   文件名。数据的发布方式与-d,--data相似,   除了保留换行符和回车符,   转换永远不会完成。

因此-d选项在发布文件时会删除换行符和回车符!