vb.net如何使用HttpWebRequest模拟登陆带验证码的网站

vb.net如何使用HttpWebRequest模拟登陆带验证码的网站
2014-06-23 21:54 玛瑙与翡翠 | 分类:C#/.NET | 浏览99次
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)