尝试将帖子发送到网站时获取403

时间:2019-10-01 12:55:35

标签: vb.net http-post httprequest

我正在尝试自动执行网站的登录过程。不幸的是,我收到一条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


0 个答案:

没有答案