いくつか調べてみると、「リモート サーバーがエラーを返しました: (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()
これを修正する方法がわかりません。助けてください!