我正在测试我的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!
真的有办法实现这个目标吗?
答案 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