1

因此,在查找了一些东西之后,我想我已经弄清楚为什么我不断收到以下错误:“远程服务器返回错误:(403) Forbidden。”

这是代码:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    ' Set the initial parameters
    Dim UserID As String = TextBox1.Text ' Username
    Dim PWord As String = TextBox2.Text ' Password
    Dim domain As String = "https://pinterest.com/login/?next=%2F"
    Dim encoding As New System.Text.ASCIIEncoding
    Dim CookieC As New Net.CookieContainer

    ' Use the appropriate HTML field names to stuff into the post header
    Dim PostData As String = _
        "email" & UserID & _
        "&password=" & PWord ' Note: where txtUName & txtPWord are the field names
    Dim Data() As Byte = encoding.GetBytes(PostData)

    ' Initialise the request
    Dim LoginReq As Net.HttpWebRequest = Net.WebRequest.Create(domain) ' Login location taken from the form action
    With LoginReq
        .KeepAlive = False
        .Method = "POST"
        ' Note: if the page uses a redirect if will fail
        .AllowAutoRedirect = False
        .ContentType = "application/x-www-form-urlencoded"
        .ContentLength = Data.Length
        ' Set empty container
        .CookieContainer = CookieC
    End With

    ' Add the POST data
    Dim SendReq As IO.Stream = LoginReq.GetRequestStream
    SendReq.Write(Data, 0, Data.Length)
    SendReq.Close()

    ' Obtain the response
    Dim LoginRes As Net.HttpWebResponse = LoginReq.GetResponse()

    ' Retreive the headers from the request (e.g. the location header)
    Dim Redirect As String = LoginRes.Headers("Location")
    ' Add any returned cookies to the cookie collection
    CookieC.Add(LoginRes.Cookies)

    ' Move to the redirected page as a GET request...
    LoginReq = Net.WebRequest.Create(domain & Redirect)
    With LoginReq
        .KeepAlive = False
        .Method = "GET"
        .ContentType = "application/x-www-form-urlencoded"
        .AllowAutoRedirect = True
        .CookieContainer = CookieC
    End With

    ' Perform the navigate and output the HTML
    LoginRes = LoginReq.GetResponse()
    Dim sReader As IO.StreamReader = New IO.StreamReader(LoginRes.GetResponseStream)
    Dim HTML As String = sReader.ReadToEnd
    If HTML.Contains("Following") Then

        MessageBox.Show("yay!")

    Else

        MessageBox.Show("no!")

    End If


End Sub

我在以下行之后添加了以下代码: Dim LoginReq As Net.HttpWebRequest = Net.WebRequest.Create(domain)

上一行之后的代码:

LoginReq.Credentials = New System.Net.NetworkCredential(UserID, PWord)

但是,以下行是问题不断发生的地方:

Dim LoginRes As Net.HttpWebResponse = LoginReq.GetResponse()

我不知道如何解决这个问题。请帮忙!

4

0 回答 0