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

问题描述 投票:0回答:1

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

rest csv curl post
1个回答
0
投票

想我需要使用--data-binary发布文件数据,所以像这样:

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

来自curl documentation

--data二进制

(HTTP)这完全按照指定发布数据,无需任何额外处理。

如果用字母@开始数据,其余的应该是文件名。数据以与-d相似的方式发布--data执行,但保留换行符和回车符并且永远不会进行转换。

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

© www.soinside.com 2019 - 2024. All rights reserved.