如何curl xml到本地运行的Django应用?
我可以通过以下内容达到我的终点:
curl http://localhost:8000/api/remote/docusign_connect/ -H 'Accept: application/xml' -H 'Content-Type: application/xml'
但是,我无法将任何XML添加到请求正文中。我收到CSRF token missing or incorrect
错误。
curl http://localhost:8000/api/remote/docusign_connect/ -b csrftoken=mycsrf -d "<status>A note</status>" -H 'Accept: application/xml' -H 'Content-Type: application/xml'
我还尝试使用--data-urlencode
而不是-d
我怎么能用第一个卷曲请求来达到端点,而第二个则不能碰到端点?(第二请求需要CSRF,但第一个请求不需要)
我怎么能用第一个卷曲请求来达到端点,而第二个则不能碰到端点?(第二请求需要CSRF,但第一个请求不需要)
在第一个中,您正在执行GET
请求。GET
请求被认为是针对CSRF的安全。
在第二个中,您正在执行POST
请求。POST
请求对您的系统有副作用,因此必须对CSRF进行某种保护。
要解决此问题,您需要在第二个请求中提供正确的csrftoken
。通常,您应该能够通过提出GET
请求来获得CSRF令牌,因为您已经提出了第一个GET
请求,因此csrftoken
可能应该在HTTP标头或Cookie中单独通过。(使用卷发打印标题)
这是有关Django CSRF