我正在尝试使用django rest框架将图像和一些嵌套参数发布到api。我正在尝试使用嵌套参数{-3}将-F标志as discussed here设置为卷曲:
curl -X POST -S -H 'Accept: application/json' -F "customer[name]=foo&customer[email]=foo@bar.com&customer[zipcode]=1076AL&customer[city]=Amsterdam&customer[address]=foobar" -F "photo=@/Users/vincentvanleeuwen/Desktop/tmp/accord.jpg;type=image/jpg" http://localhost:8000/api/orders/
但我收到以下回复:
{"customer":{"city":["This field is required."],"email":["This field is required."],"zipcode":["This field is required."],"name":["This field is required."]}}
我在-F标志下的嵌套似乎有问题,因为嵌套变量可以工作,如果我这样发布:
curl -X POST -S -H "Content-Type: application/json" -d '{"customer":{"name":"Adriaan","email":"adriaan@adriaan.com","zipcode":"1901ZP","address":"caravan","city":"Verweggistan"}}' http://localhost:8000/api/orders/
任何想法我做错了什么?任何帮助将不胜感激!
答案 0 :(得分:1)
为每个参数尝试单独的-F标志?从卷曲手册:
使用-F模拟填充表单。假设你填写了三个字段 在一种形式。一个字段是要发布的文件名,一个字段是您的 name和一个字段是文件描述。我们想发布文件 我们写的名为“cooltext.txt”。让curl发布 这个数据而不是你最喜欢的浏览器,你必须阅读 表单页面的HTML源代码并找到输入字段的名称。 在我们的示例中,输入字段名称为“file”,“yourname”和 'filedescription'。
curl -F "file=@cooltext.txt" -F "yourname=Daniel" \ -F "filedescription=Cool text file with cool text inside" \ http://www.post.com/postit.cgi