登录PHP页面没有记录SESSION,到底是什么地方出错呢?Imports System Imports System.Drawing Imports System.Collections Imports System.ComponentModel Imports System.Windows.Forms Imports System.Data Imports System.Web Imports System.Web.SessionState Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.HtmlControls Imports System.Net Imports System.IO Imports System.Text Imports System.Net.CookieCollection Public CookieHeader As String Public Class Form1 Public Function Login(ByVal Url As String, ByVal Params As String) Dim strResult As String = getPageByPost(Url, Params) Return strResult End Function Public Function getPageByPost(ByVal url As String, ByVal payload As String) As String Dim result As HttpWebResponse Dim strResult As String = "" Try Dim req As HttpWebRequest Dim RequestStream As Stream Dim ReceiveStream As Stream Dim encode As Encoding Dim sr As StreamReader req = WebRequest.Create(url) req.Method = "POST" req.ContentType = "application/x-www-form-urlencoded" req.CookieContainer = New CookieContainer If Not Me.CookieHeader Is Nothing Then If Me.CookieHeader.Length <> 0 Then Me.Text = Me.CookieHeader req.CookieContainer.SetCookies(New Uri(url), Me.CookieHeader) End If End If Dim SomeBytes() As Byte Dim UrlEncoded As New StringBuilder Dim reserved() As Char = {ChrW(63), ChrW(61), ChrW(38)} If payload <> Nothing Then Dim i As Integer = 0 Dim j As Integer While i < payload.Length j = payload.IndexOfAny(reserved, i) If j = -1 Then UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, payload.Length - i))) Exit While End If UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, j - i))) UrlEncoded.Append(payload.Substring(j, 1)) i = j + 1 End While SomeBytes = System.Text.Encoding.UTF8.GetBytes(UrlEncoded.ToString()) req.ContentLength = SomeBytes.Length RequestStream = req.GetRequestStream() RequestStream.Write(SomeBytes, 0, SomeBytes.Length) RequestStream.Close() Else req.ContentLength = 0 End If result = req.GetResponse() Me.CookieHeader = req.CookieContainer.GetCookieHeader(New Uri(url)) ReceiveStream = result.GetResponseStream() encode = System.Text.Encoding.GetEncoding("gb2312") sr = New StreamReader(ReceiveStream, encode) Dim read(256) As Char Dim count As Integer = sr.Read(read, 0, 256) Do While count > 0 strResult &= New String(read, 0, count) count = sr.Read(read, 0, 256) Loop Catch Exc As Exception Debug.Write(Exc.Message) Finally If Not result Is Nothing Then result.Close() End If End Try Return strResult End Function Function getPageByUrl(ByVal url As String) As String Dim result As HttpWebResponse Dim strResult As String = "" Try Dim req As HttpWebRequest Dim ReceiveStream As Stream Dim encode As Encoding Dim sr As StreamReader req = WebRequest.Create(url) req.Method = "GET" req.CookieContainer = New CookieContainer If Not Me.CookieHeader Is Nothing Then If Me.CookieHeader.Length <> 0 Then req.CookieContainer.SetCookies(New Uri(url), Me.CookieHeader) End If End If result = req.GetResponse() Me.CookieHeader = req.CookieContainer.GetCookieHeader(New Uri(url)) ReceiveStream = result.GetResponseStream() encode = System.Text.Encoding.GetEncoding("gb2312") sr = New StreamReader(ReceiveStream, encode) Dim read(256) As Char Dim count As Integer = sr.Read(read, 0, 256) Do While count > 0 strResult &= New String(read, 0, count) count = sr.Read(read, 0, 256) Loop Catch Exc As Exception Finally If Not result Is Nothing Then result.Close() End If End Try Return strResult End Function End Class
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data
Imports System.Web
Imports System.Web.SessionState
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Net.CookieCollection
Public CookieHeader As String
Public Class Form1
Public Function Login(ByVal Url As String, ByVal Params As String)
Dim strResult As String = getPageByPost(Url, Params)
Return strResult
End Function Public Function getPageByPost(ByVal url As String, ByVal payload As String) As String
Dim result As HttpWebResponse
Dim strResult As String = ""
Try
Dim req As HttpWebRequest
Dim RequestStream As Stream
Dim ReceiveStream As Stream
Dim encode As Encoding
Dim sr As StreamReader req = WebRequest.Create(url)
req.Method = "POST"
req.ContentType = "application/x-www-form-urlencoded"
req.CookieContainer = New CookieContainer If Not Me.CookieHeader Is Nothing Then
If Me.CookieHeader.Length <> 0 Then
Me.Text = Me.CookieHeader
req.CookieContainer.SetCookies(New Uri(url), Me.CookieHeader)
End If
End If Dim SomeBytes() As Byte
Dim UrlEncoded As New StringBuilder
Dim reserved() As Char = {ChrW(63), ChrW(61), ChrW(38)} If payload <> Nothing Then
Dim i As Integer = 0
Dim j As Integer
While i < payload.Length
j = payload.IndexOfAny(reserved, i)
If j = -1 Then
UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, payload.Length - i)))
Exit While
End If
UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, j - i)))
UrlEncoded.Append(payload.Substring(j, 1))
i = j + 1
End While
SomeBytes = System.Text.Encoding.UTF8.GetBytes(UrlEncoded.ToString())
req.ContentLength = SomeBytes.Length
RequestStream = req.GetRequestStream()
RequestStream.Write(SomeBytes, 0, SomeBytes.Length)
RequestStream.Close()
Else
req.ContentLength = 0
End If
result = req.GetResponse() Me.CookieHeader = req.CookieContainer.GetCookieHeader(New Uri(url)) ReceiveStream = result.GetResponseStream()
encode = System.Text.Encoding.GetEncoding("gb2312")
sr = New StreamReader(ReceiveStream, encode) Dim read(256) As Char
Dim count As Integer = sr.Read(read, 0, 256) Do While count > 0
strResult &= New String(read, 0, count)
count = sr.Read(read, 0, 256)
Loop Catch Exc As Exception Debug.Write(Exc.Message)
Finally If Not result Is Nothing Then
result.Close()
End If End Try
Return strResult
End Function
Function getPageByUrl(ByVal url As String) As String
Dim result As HttpWebResponse
Dim strResult As String = ""
Try
Dim req As HttpWebRequest Dim ReceiveStream As Stream
Dim encode As Encoding
Dim sr As StreamReader req = WebRequest.Create(url) req.Method = "GET" req.CookieContainer = New CookieContainer If Not Me.CookieHeader Is Nothing Then
If Me.CookieHeader.Length <> 0 Then
req.CookieContainer.SetCookies(New Uri(url), Me.CookieHeader)
End If
End If result = req.GetResponse() Me.CookieHeader = req.CookieContainer.GetCookieHeader(New Uri(url)) ReceiveStream = result.GetResponseStream()
encode = System.Text.Encoding.GetEncoding("gb2312")
sr = New StreamReader(ReceiveStream, encode) Dim read(256) As Char
Dim count As Integer = sr.Read(read, 0, 256) Do While count > 0
strResult &= New String(read, 0, count)
count = sr.Read(read, 0, 256)
Loop Catch Exc As Exception
Finally If Not result Is Nothing Then
result.Close()
End If End Try
Return strResult
End Function
End Class