Hallo!
Ich habe ein nerviges Problem. Ich benutze einen Post um mich auf einer Seite einzuloggen und speichere dann die cookies in einem Container. Aber wenn ich mich dann auf der Seite weiterbewegen will, tut er immer so, als ob die cookies nicht da wären. Ich hab schon alles mögliche probiert.
Ich habe den container so deklariert:
Dim cookie As CookieContainer Diesen Code benutze ich zum einloggen:
Dim postdata As String = "username=user&password=pass123"
Dim Url As String = "http://www.abc.php"
Dim webrequest As HttpWebRequest
Dim webresponse As HttpWebResponse
Dim streamreader As StreamReader
Dim sw As StreamWriter
Dim myWriter As StreamWriter = Nothing
Dim SomeBytes() As Byte
Dim UrlEncoded As New StringBuilder
Dim reserved() As Char = {ChrW(63), ChrW(61), ChrW(38)}
webrequest = System.Net.WebRequest.Create(Url)
webrequest.CookieContainer = cookie
webrequest.Credentials = CredentialCache.DefaultCredentials
webrequest.Accept = "image/gif, image/x-xbitmap, image/jpeg," & _
"image/pjpeg, application/x-shockwave-flash, */*"
webrequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT" & _
"5.0; .NET CLR 1.0.3705;)"
webrequest.Method = "POST"
webrequest.ContentType = "application/x-www-form-urlencoded"
If postdata <> Nothing Then
Dim i As Integer = 0
Dim j As Integer
While i < postdata.Length
j = postdata.IndexOfAny(reserved, i)
If j = -1 Then
UrlEncoded.Append(System.Web.HttpUtility.UrlEncode( _
postdata.Substring(i, postdata.Length - i)))
Exit While
End If
UrlEncoded.Append(System.Web.HttpUtility.UrlEncode( _
postdata.Substring(i, j - i)))
UrlEncoded.Append(postdata.Substring(j, 1))
i = j + 1
End While
SomeBytes = System.Text.Encoding.GetEncoding(1252).GetBytes( _
UrlEncoded.ToString())
webrequest.ContentLength = SomeBytes.Length
Else
webrequest.ContentLength = 0
End If
Dim requestStream As Stream = webrequest.GetRequestStream()
requestStream.Write(SomeBytes, 0, SomeBytes.Length)
requestStream.Close()
'webrequest.CookieContainer = cookie
webresponse = webrequest.GetResponse
streamreader = New StreamReader(webresponse.GetResponseStream, _
Encoding.GetEncoding(1252))
html = streamreader.ReadToEnd.Trim
streamreader.Close()
webresponse.Close() Und diesen wollte ich benutzen, ob mich auf der seite zu bewegen:
webrequest = System.Net.WebRequest.Create("http://www.abc.php/defg")
'Cookie-Container für diese Seite mit "Cookie" festlegen
webrequest.CookieContainer = cookie
'Request Methode "GET" festlegen
webrequest.Method = "GET"
'Response für den request anfordern
webresponse = webrequest.GetResponse
'Antwortstream lesen, speichern und schliessen
streamreader = New StreamReader(webresponse.GetResponseStream, _
Encoding.Default)
html = streamreader.ReadToEnd.Trim
streamreader.Close()
webresponse.Close() |