卷曲命令顶部上传文件与元数据

时间:2013-03-12 17:28:37

标签: curl command-line

我正在测试我的RESTFul API,我想知道是否有办法同时上传文件和json数据。

当我从命令行运行此命令时:

curl -v -X POST -d '{"label":"vacations", "date":"2011-01-03"}' -F photo=@"photo.png" http://localhost/album

我收到此错误: Warning: You can only select one HTTP request!

真的有办法实现这个目标吗?

3 个答案:

答案 0 :(得分:0)

似乎你和

之间存在冲突
-F photo=@"photo.png"

-d '{"label":"vacations", "date":"2011-01-03"}'

您只能使用这2个选项中的一个。

我认为最好的方法是base64 encode字符串中的图片并将其放在JSON中:

-d '{"label":"vacations", "date":"2011-01-03", "photo":"AE..."}'

base64 decode服务器端。

您也可以添加此开关:

-H 'Content-type:text/json'

答案 1 :(得分:0)

@sputnick方法工作:)。

我将使用邮递员(Chrome扩展程序)来测试我的restful API而不是curl。

答案 2 :(得分:0)

您也可以使用-F作为元数据,请参阅Erik Allik的回答here

例如:

curl -F 'json={"label":"vacations", "date":"2011-01-03"}' -F 'photo=@photo.png' http://localhost/album