我在djangorestframework中制作了几个api。 这个我可以用api的html形式和命令行中的curl一起测试。
现在我有一个api到一个模型,其中一个字段是一个ImageField。
我无法弄清楚要使用哪个curl命令。 使用我在以json格式发布动作之前使用的语法,它将是:
curl -X POST -S -H 'Content-Type: application/json' -u "username:password" --data-binary '{"otherfields":"something", "photo":"/home/michel/test.jpg"}' 127.0.0.1:8000/api/v1/
但在这种情况下,照片不会被保存并留空(照片是可选字段)
添加-T /home/michel/test.jpg
我收到一条错误消息,说127.0.0.1:800/api/v1/test.jpg不存在为URL。
在djangorestframework的测试html表单中,一切正常。
使用-F
选项,它说我一次只能做1个请求...
我还从data-binary
任何人都可以帮助我如何使用json in 1命令中的图像和其他数据制作此卷曲帖子。
答案 0 :(得分:11)
经过长时间的拼图,这似乎可以解决问题:
-F
参数Accept
(不是Content-Type
)使用@
表示要上传的本地文件
curl -X POST -S \
-H 'Accept: application/json' \
-u "username:password" \
-F "otherfields=something" \
-F "photo=@/home/michel/test.jpg;type=image/jpg" \
http://127.0.0.1:8000/api/v1/
顺便说一下,我知道所有这些都在curl的文档站点上,但是由于有很多选项需要尝试,所以只是错过了所有这些内容的示例。