1

我正在测试我的 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!

真的有办法做到这一点吗?

4

3 回答 3

0

@sputnick 方法有效:)。

我将使用 postman(一个 chrome 扩展)来测试我的 restful API 而不是 curl。

于 2013-03-15T06:36:39.390 回答
0

看来你之间有冲突

-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'
于 2013-03-12T17:30:46.677 回答
0

您还可以将 -F 用于元数据,请参阅 Erik Allik 的回答here

例如:

curl -F 'json={"label":"vacations", "date":"2011-01-03"}' -F 'photo=@photo.png' http://localhost/album
于 2015-12-15T17:15:19.380 回答