django curl localhost xml request



如何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

的文档

最新更新