我正在尝试使用来自Linux shell脚本的CURL POST到SMS提供程序(Sybase 365)的HTTP网关.
我需要传递以下数据(注意[]和LF字符)
[MSISDN] List=+12345678 [MESSAGE] Text=Hello [END]
如果我使用-F参数提交文件,CURL将删除LF,例如
curl -F @myfile "http://www.sybase.com/..."
在服务器上导致此问题(被拒绝)
[MSISDN]List=+12345678[MESSAGE]Text=Hello[END]
我有什么办法可以避免这种情况,还是需要替代工具?
我正在使用包含我的数据的文件进行测试,但我想在实践中避免这种情况,直接从脚本中进行POST.
尝试使用--data-binary
而不是-d(ata-ascii)
.
从手册:
--data-binary(HTTP)以与--data-ascii类似的方式发布数据,尽管使用此选项时,已发布数据的整个上下文保持原样.
如果您想发布没有--data-ascii选项的strip-newlines功能的二进制文件,这适合您.如果多次使用此选项,则第一个选项将附加数据.
ETA:哎呀,我应该更仔细地阅读这个问题.你使用的是-F,而不是-d.但--data-binary
可能还是值得一试.