vb.net如何使用HttpWebRequest模拟登陆带验证码的网站
Public Function 发送信息(strUrl As String, strPostData As String, Optional ByVal 发送方式 As Boolean = True) As HttpWebResponse
Dim myHttpWebRequest As HttpWebRequest = WebRequest.Create(strUrl)
If 发送方式 Then
myHttpWebRequest.Method = "POST"
Else
myHttpWebRequest.Method = "GET"
End If
'填充基本信息
myHttpWebRequest.Accept = "text/html, application/xhtml+xml, */*"
myHttpWebRequest.UserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; MALCJS)"
myHttpWebRequest.Headers.Add("Accept-Language", "zh-CN")
myHttpWebRequest.Headers.Add("Accept-Encoding", "gzip, deflate")
myHttpWebRequest.Headers.Add("DNT", "1")
myHttpWebRequest.KeepAlive = True
myHttpWebRequest.Timeout = 8000
myHttpWebRequest.Credentials = CredentialCache.DefaultCredentials
myHttpWebRequest.AllowAutoRedirect = True
myHttpWebRequest.MaximumAutomaticRedirections = 4
myHttpWebRequest.CookieContainer = New CookieContainer()
myHttpWebRequest.CookieContainer = myCookie
Dim postData As String = strPostData '+ ChrW(61)
Dim encoding As New ASCIIEncoding()
Dim postByte As Byte() = encoding.GetBytes(postData)
If Not postByte Is Nothing Then
If postByte.Length > 0 Then
myHttpWebRequest.ContentLength = postByte.Length
Dim newStream As Stream = myHttpWebRequest.GetRequestStream()
newStream.Write(postByte, 0, postByte.Length)
newStream.Flush()
newStream.Close()
End If
End If
Dim myHttpWebResponse As HttpWebResponse
Try
myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
Catch ex As Exception
End Try
If Not myHttpWebResponse Is Nothing Then
Return myHttpWebResponse
Else
Return Nothing
End If
myHttpWebResponse.Close()
End Function
本文介绍了一个使用VB.NET的HttpWebRequest类模拟登录带验证码网站的方法。通过设置请求头、提交POST数据等方式实现完整的登录流程。
908

被折叠的 条评论
为什么被折叠?



