我正在测试我的 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!
真的有办法做到这一点吗?
我正在测试我的 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!
真的有办法做到这一点吗?
@sputnick 方法有效:)。
我将使用 postman(一个 chrome 扩展)来测试我的 restful API 而不是 curl。
看来你之间有冲突
-F photo=@"photo.png"
和
-d '{"label":"vacations", "date":"2011-01-03"}'
您只能使用这两个选项之一。
我认为最好的方法是base64 encode
将图片放在字符串中并将其放入您的JSON
喜欢中:
-d '{"label":"vacations", "date":"2011-01-03", "photo":"AE..."}'
它base64 decode
是服务器端。
您也可以添加此开关:
-H 'Content-type:text/json'
您还可以将 -F 用于元数据,请参阅 Erik Allik 的回答here
例如:
curl -F 'json={"label":"vacations", "date":"2011-01-03"}' -F 'photo=@photo.png' http://localhost/album