最近用到了webrequest,查了很多资料都无法保存网站的登录信息

最后自己终于调试成功了一把。

WebRequest保持Session和CookieOption Explicit On 
WebRequest保持Session和Cookie
Option Strict On
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie
Imports System.Net
WebRequest保持Session和Cookie
Imports System.Web
WebRequest保持Session和Cookie
Imports System.Text
WebRequest保持Session和Cookie
Imports System.IO
WebRequest保持Session和Cookie
 SoilNET.KRL.WebUtility
WebRequest保持Session和Cookie
 LoginRequest
WebRequest保持Session和Cookie        
Public Cookies As CookieCollection
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie
()
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie        
End Sub

WebRequest保持Session和Cookie            
Dim strResult As String = getPageByPost(Url, Params)
WebRequest保持Session和Cookie            
Return strResult
WebRequest保持Session和Cookie        
End Function
WebRequest保持Session和Cookie

WebRequest保持Session和Cookie            
Dim result As HttpWebResponse
WebRequest保持Session和Cookie            
Dim strResult As String = 
WebRequest保持Session和Cookie            
Try
WebRequest保持Session和Cookie                
Dim req As HttpWebRequest
WebRequest保持Session和Cookie                
Dim RequestStream As Stream
WebRequest保持Session和Cookie                
Dim ReceiveStream As Stream
WebRequest保持Session和Cookie                
Dim encode As Encoding
WebRequest保持Session和Cookie                
Dim sr As StreamReader
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                req 
= CType(WebRequest.Create(url), HttpWebRequest)
WebRequest保持Session和Cookie                req.Method 
= POST
WebRequest保持Session和Cookie                req.ContentType 
= applicationx-www-form-urlencoded
WebRequest保持Session和Cookie                req.CookieContainer 
= New CookieContainer
WebRequest保持Session和Cookie                req.UserAgent 
= Mozilla4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; .NET CLR 1.0.3705)
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                
If Not Me.Cookies Is Nothing Then
WebRequest保持Session和Cookie                    req.CookieContainer.Add(
New Uri(url), Me.Cookies)
WebRequest保持Session和Cookie                
End If
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                
Dim SomeBytes() As Byte
WebRequest保持Session和Cookie                
Dim UrlEncoded As New StringBuilder
WebRequest保持Session和Cookie                
Dim reserved() As Char = {ChrW(63), ChrW(61), ChrW(38)}
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                
If payload  Nothing Then
WebRequest保持Session和Cookie                    
If needEncode Then '有些网站encode后反而出现中文乱码所以加上这个开关
WebRequest保持Session和Cookie
                        Dim i As Integer = 0
WebRequest保持Session和Cookie                        
Dim j As Integer
WebRequest保持Session和Cookie                        
While i  payload.Length
WebRequest保持Session和Cookie                            j 
= payload.IndexOfAny(reserved, i)
WebRequest保持Session和Cookie                            
If j = -1 Then
WebRequest保持Session和Cookie                                UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, payload.Length 
- i)))
WebRequest保持Session和Cookie                                
Exit While
WebRequest保持Session和Cookie                            
End If
WebRequest保持Session和Cookie                            UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, j 
- i)))
WebRequest保持Session和Cookie                            UrlEncoded.Append(payload.Substring(j, 
1))
WebRequest保持Session和Cookie                            i 
= j + 1
WebRequest保持Session和Cookie                        
End While
WebRequest保持Session和Cookie                        SomeBytes 
= System.Text.Encoding.ASCII.Default.GetBytes(UrlEncoded.ToString())
WebRequest保持Session和Cookie                    
Else
WebRequest保持Session和Cookie                        SomeBytes 
= System.Text.Encoding.ASCII.Default.GetBytes(payload)
WebRequest保持Session和Cookie                    
End If
WebRequest保持Session和Cookie                    req.ContentLength 
= SomeBytes.Length
WebRequest保持Session和Cookie                    RequestStream 
= req.GetRequestStream()
WebRequest保持Session和Cookie                    RequestStream.
Write(SomeBytes, 0, SomeBytes.Length)
WebRequest保持Session和Cookie                    RequestStream.Close()
WebRequest保持Session和Cookie                
Else
WebRequest保持Session和Cookie                    req.ContentLength 
= 0
WebRequest保持Session和Cookie                
End If
WebRequest保持Session和Cookie                
'result.Cookies = New CookieCollection
WebRequest保持Session和Cookie
                result = CType(req.GetResponse(), HttpWebResponse)
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                ReceiveStream 
= result.GetResponseStream()
WebRequest保持Session和Cookie                encode 
= System.Text.Encoding.ASCII.Default
WebRequest保持Session和Cookie                sr 
= New StreamReader(ReceiveStream, encode)
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                
Dim read(256As Char
WebRequest保持Session和Cookie                
Dim count As Integer = sr.Read(read, 0256)
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                
Do While count  0
WebRequest保持Session和Cookie                    strResult 
&= New String(read, 0, count)
WebRequest保持Session和Cookie                    count 
= sr.Read(read, 0256)
WebRequest保持Session和Cookie                
Loop
WebRequest保持Session和Cookie                Me.Cookies 
= req.CookieContainer.GetCookies(New Uri(url))
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie            
Catch Exc As Exception
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                Debug.
Write(Exc.Message)
WebRequest保持Session和Cookie            
Finally
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                
If Not result Is Nothing Then
WebRequest保持Session和Cookie                    result.Close()
WebRequest保持Session和Cookie                
End If
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie            
End Try
WebRequest保持Session和Cookie            
Return strResult
WebRequest保持Session和Cookie        
End Function

WebRequest保持Session和Cookie            
Dim result As HttpWebResponse
WebRequest保持Session和Cookie            
Dim strResult As String = 
WebRequest保持Session和Cookie            
Try
WebRequest保持Session和Cookie                
Dim req As HttpWebRequest
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                
Dim ReceiveStream As Stream
WebRequest保持Session和Cookie                
Dim encode As Encoding
WebRequest保持Session和Cookie                
Dim sr As StreamReader
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                req 
= CType(WebRequest.Create(url), HttpWebRequest)
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                req.Method 
= GET
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                req.CookieContainer 
= New CookieContainer
WebRequest保持Session和Cookie                req.UserAgent 
= Mozilla4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; .NET CLR 1.0.3705)
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                
If Not Me.Cookies Is Nothing Then
WebRequest保持Session和Cookie                    req.CookieContainer.Add(
New Uri(url), Me.Cookies)
WebRequest保持Session和Cookie                
End If
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                result 
= CType(req.GetResponse(), HttpWebResponse)
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                ReceiveStream 
= result.GetResponseStream()
WebRequest保持Session和Cookie                encode 
= System.Text.Encoding.ASCII.Default
WebRequest保持Session和Cookie                sr 
= New StreamReader(ReceiveStream, encode)
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                
Dim read(256As Char
WebRequest保持Session和Cookie                
Dim count As Integer = sr.Read(read, 0256)
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                
Do While count  0
WebRequest保持Session和Cookie                    strResult 
&= New String(read, 0, count)
WebRequest保持Session和Cookie                    count 
= sr.Read(read, 0256)
WebRequest保持Session和Cookie                
Loop
WebRequest保持Session和Cookie                Me.Cookies 
= req.CookieContainer.GetCookies(New Uri(url))
WebRequest保持Session和Cookie            
Catch Exc As Exception
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie            
Finally
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie                
If Not result Is Nothing Then
WebRequest保持Session和Cookie                    result.Close()
WebRequest保持Session和Cookie                
End If
WebRequest保持Session和Cookie
WebRequest保持Session和Cookie            
End Try
WebRequest保持Session和Cookie            
Return strResult
WebRequest保持Session和Cookie        
End Function
WebRequest保持Session和Cookie    
End Class
WebRequest保持Session和Cookie
End Namespace
WebRequest保持Session和Cookie

相关文章: