Получите 403 при попытке отправить сообщение на сайт - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь автоматизировать процесс входа на сайты. К сожалению, я получаю сообщение об ошибке 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


...