我在寫一個需要將數據發送到Django站點的VB.NET程序,但該站點受密碼保護。因此我需要先登錄。我現在使用的代碼是:使用POST請求登錄到Django網站
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數據錯誤。任何幫助,將不勝感激。
我猜你對csrf是正確的,但你的數據看起來也很有趣。我認爲用戶名和密碼之間應該有一個逗號。要做到這一點很簡單,就是在Firefox上使用篡改等工具,並且在真正的用戶登錄時準確查看發佈的內容。但是,我仍然認爲在沒有CSRF的情況下您會遭到拒絕。 –