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