因此,在查找了一些东西之后,我想我已经弄清楚为什么我不断收到以下错误:“远程服务器返回错误:(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()
我不知道如何解决这个问题。请帮忙!