我正在尝试自动执行网站的登录过程。不幸的是,我收到一条403错误消息,指出它是被禁止的。我认为该网站已采取措施阻止我发送帖子数据。有可能吗,或者我只是在某个地方的代码中出错了?
我使用两个输入框输入用户名和密码,以及一个丰富的文本框,该文本框将在处理完帖子后最终吐出html文档文本。
任何解决该问题的帮助将不胜感激。
Imports System.Net
Imports System.Text
Imports System.IO
Public Class Form1
Public LoginCookie As CookieContainer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim PostData As String = "utf8=✓&authenticity_token=5zRqpwz6SOuFlhIHvJrKb6w5sUJYH1OaPjM13Cjup5zXRMzGbcj3qx4pcg96xutqwFOdU3/DpCjVewF3Me2D5g==&user_return_to=&user[email]=" & TextBox_Username.Text & "&user[password]=" & TextBox_Password.Text & "&user[remember_me]=true"
Dim TempCookies As New CookieContainer
Dim encoding As New UTF8Encoding
Dim ByteData As Byte() = encoding.GetBytes(PostData)
Dim PostReq As HttpWebRequest = DirectCast(WebRequest.Create("https://www.artstation.com/users/sign_in"), HttpWebRequest)
PostReq.Method = "POST"
PostReq.KeepAlive = True
PostReq.CookieContainer = TempCookies
PostReq.ContentType = "application/x-www-form-urlencoded"
PostReq.Referer = "https://www.artstation.com/users/sign_in"
PostReq.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"
PostReq.ContentLength = ByteData.Length
Dim PostReqStream As Stream = PostReq.GetRequestStream()
PostReqStream.Write(ByteData, 0, ByteData.Length)
PostReqStream.Close()
Dim PostResponse As HttpWebResponse
' I get an error on the line below:
PostResponse = DirectCast(PostReq.GetResponse(), HttpWebResponse)
TempCookies.Add(Postresponse.Cookies)
LoginCookie = TempCookies
Dim PostReqReader As New StreamReader(PostResponse.GetResponseStream)
Dim ThePage As String = PostReqReader.ReadToEnd
RichTextBox1.Text = ThePage
End Sub
End Class