Размещение вложенных параметров с флагом curl -F

Я пытаюсь опубликовать изображение и несколько вложенных параметров в API, используя django rest framework. Я пытаюсь настроить скручивание с флагами -F как обсуждено здесь с вложенными параметрами как обсуждается здесь:

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/

Есть идеи, что я делаю не так? Любая помощь приветствуется!

2

Решение

Попробуйте отдельные флаги -F для каждого параметра? Из руководства по скручиванию:

Эмулируйте заполненную форму с -F. Допустим, вы заполнили три поля
в форме. Одно поле — это имя файла для публикации, одно поле — это ваше
Имя и одно поле — это описание файла. Мы хотим опубликовать файл
мы написали с именем «cooltext.txt». Чтобы позволить curl сделать объявление
эти данные вместо вашего любимого браузера, вы должны прочитать
HTML-источник страницы формы и найти имена полей ввода.
В нашем примере имена полей ввода: «file», «yourname» и
‘описание файла’.

    curl -F "file=@cooltext.txt" -F "yourname=Daniel" \
-F "filedescription=Cool text file with cool text inside" \
http://www.post.com/postit.cgi
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector