Как использовать curl с Django, токенами csrf и запросами POST

Я использую curl для тестирования одной из моих форм Django. Вызовы, которые я пробовал (с ошибками в каждом и в нескольких строках для удобства чтения):

(1 ):

curl
-d "{\"email\":\"test@test.com\"}"
--header "X-CSRFToken: [triple checked value from the source code of a page I already loaded from my Django app]"
--cookie "csrftoken=[same csrf value as above]"
http://127.0.0.1:8083/registrations/register/

(с заголовком http и csrftokenв файле cookie) приводит к ошибке 400 без возврата данных

(2):

curl
-d "{a:1}"
--header "X-CSRFToken:[as above]"
--cookie "csrftoken=[as above];sessionid=[from header inspection in Chrome]"
http://127.0.0.1:8083/registrations/register/

(как в (1), но без пробелов в объявление свойства заголовка, а также sessionidв файле cookie) приводит к той же ошибке 400 без возврата данных

(3):

curl
-d "{a:1}"
--header "X-CSRFToken:[as above]"
http://127.0.0.1:8083/registrations/register/

(только http-заголовок с X-CSRFToken, без файла cookie) приводит к ошибке с кодом 403 и сообщением: Файл cookie CSRF не установлен.

Как проверить свою форму с помощью curl? Какие факторы я не учитываю, кроме значений файлов cookie и http-заголовков?

44
задан Sergey Weiss 19 February 2013 в 13:55
поделиться