我正在使用 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) 中,但在 header 属性声明中没有空格,并且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,并显示消息:CSRF cookie not set。
如何使用 curl 测试我的表单?除了 cookie 值和 http 标头之外,我没有考虑哪些因素?