1

我正在编写一个需要将数据发送到 Django 站点的 VB.NET 程序,但该站点受密码保护。因此我需要先登录。我现在使用的代码是:

Dim reqT As HttpWebRequest
Dim resT As HttpWebResponse
reqT = WebRequest.Create("http://websiteURL/login/")
reqT.Method = "POST"

Dim Data As String
Data = "{""username"":""fakeusername""&""password"":""fakepassword""}"
Dim credArray As Byte() = Encoding.UTF8.GetBytes(Data)
reqT.ContentType = "application/x-www-form-urlencoded"
reqT.ContentLength = credArray.Length
Dim dataStreamT As Stream = reqT.GetRequestStream()
dataStreamT.Write(credArray, 0, credArray.Length)
dataStreamT.Close()

这从网络服务器返回 403 错误,不幸的是我不知道如何修复它。我认为这可能是 csrf 失败或者我的 POST 数据格式错误。任何帮助,将不胜感激。

4

1 回答 1

2

对我来说听起来像是 CSRF 保护。Django CSRF 文档在这里:

根据工作原理部分,您的 POST 请求将需要传递 CSRF 令牌和 CSRF cookie。

如果您向登录页面发出 GET 请求,您应该能够从 HTML 源中获取令牌。我猜你也可以访问cookie?

于 2012-10-05T20:20:03.943 回答