使用curl POST数据

时间:2014-01-04 15:34:00

标签: bash curl

在这里打击n00b ..我正在使用curl发布一个像这样编码的文件b64:

$ cat file.txt | openssl base64 | curl --data @- myhost.com/api

效果很好。我在服务器端拆分键/值,整个消息进入密钥,但是我可以解析它并转换为ascii等..在服务器上。

如何将其他键/值附加到帖子中?像...这样的东西。

$ cat file.txt | openssl base64 | PREPEND "key=value1&key2&value2&btext=" | curl --data @- myhost.com/api

2 个答案:

答案 0 :(得分:7)

您可以在子shell中创建所有要卷曲的输入,如下所示:

(echo -n "key=value1&key2=value2&btext="; openssl base64 < file.txt) | curl --data @- myhost.com/api

这将相互执行echoopenssl,并将连续输出传递给curl

答案 1 :(得分:2)

而不是@ - ,您可以使用-F发布前置密钥和base64文本。

curl -F key=value1 -F key2=value2 -F btext=$(openssl base64 < file.txt | tr -d "\n") myhost.com/api

在我的测试中,除非你删除换行符,否则base64不会被正确发送,-F和@都不适用于特别大的文件(&gt; ~50kb?)。