我在djangorestframework中做了几个API。
我可以使用api的html形式进行测试,就像在命令行中使用curl一样。

现在,我有一个模型的api,其中一个没有ImageField。

我不知道要使用哪个curl命令。
使用我在json格式的fot post操作之前使用的语法,它将是:

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个请求...
我还从数据二进制中删除了数据类型

任何人都可以帮助我如何在1个命令中同时使用图像和json中的其他数据制作此curl post。

最佳答案

经过漫长的困惑之后,这似乎可以解决问题:

  • 将所有json参数放在单独的-F参数
  • 仅使用 header 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的文档站点上,但是由于有很多可供选择的选项,因此只错过了所有这些示例。

    关于django - 使用json使用djangorestframework将图像上传到ima​​gefield并使用CURL对此进行测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11398696/

    10-12 00:14
    查看更多