ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1966
1966
EMPFEHLEN
-
Hi, ich wollte mit folgender Funktion meine WebRequests machen.
Code vbnet:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Dim cookieContainer As CookieContainer = New CookieContainer() Private Function Request(ByVal URL as String, ByVal PostData as String) as String Dim request As HttpWebRequest Dim response As HttpWebResponse Dim str, str2 As IO.Stream Dim buffer As String Dim data As Byte() = System.Text.Encoding.ASCII.GetBytes(PostData) request = Net.WebRequest.Create(URL) request.CookieContainer = cookieContainer request.Method = "POST" request.Accept = "*/*" request.Headers.Add(Net.HttpRequestHeader.AcceptLanguage, "de") request.Headers.Add("UA-CPU", "x86") request.Headers.Add(Net.HttpRequestHeader.AcceptEncoding, "gzip, deflate") request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618) " request.ContentType = "application/x-www-form-urlencoded" request.ContentLength = data.Length str2 = request.GetRequestStream() str2.Write(data, 0, data.Length) str2.Close() response = request.GetResponse str = response.GetResponseStream() If response.Cookies IsNot Nothing AndAlso response.Cookies.Count <> 0 Then For Each cookie As Cookie In response.Cookies MessageBox.Show(cookie.ToString) Next Else ' No cookie End If If (response.ContentEncoding.ToLower().Contains("gzip")) Then str = New IO.Compression.GZipStream(str, IO.Compression.CompressionMode.Decompress) ElseIf (response.ContentEncoding.ToLower().Contains("deflate")) Then str = New IO.Compression.DeflateStream(str, IO.Compression.CompressionMode.Decompress) End If 'Fall der Server die Page in GZIP / Deflate zurück gibt dann habt hier einen Decoder buffer = New IO.StreamReader(str, System.Text.Encoding.ASCII).ReadToEnd return buffer End Function
Wenn ich damit eine Abfrage mache bekomme ich zwar den Quelltext und die Cookies der Seite ausgegeben nur würde ich die Cookies auch gerne weiter verwenden. Also das ich z.B. eine Abfrage machen zum einloggen, dann den Cookie anlege und danach mit dem Cookie weitere abfragen machen kann.
-
12.02.09 17:45 #2
Hi,
schau mal hier:
http://www.tutorials.de/forum/net-we...anhaengen.html
Gruß K
-
Hab jetzt noch weiter rumprobiert, aber es geht och immer nicht.
Code vbnet:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
'Dim cookieContainer As CookieContainer = New CookieContainer() Dim cookieContainer As New CookieCollection() Public Function InfoRequest(ByVal URL As String, ByVal PostData As String) As String Dim request As HttpWebRequest Dim response As HttpWebResponse Dim str, str2 As IO.Stream Dim buffer As String Dim data As Byte() = System.Text.Encoding.ASCII.GetBytes(PostData) request = Net.WebRequest.Create(URL) 'request.CookieContainer = cookieContainer request.CookieContainer = New CookieContainer() Try request.CookieContainer.Add(cookieContainer) Catch exp As Exception MessageBox.Show("kein cookie übergeben") End Try request.Method = "POST" request.Accept = "*/*" request.Headers.Add(Net.HttpRequestHeader.AcceptLanguage, "de") request.Headers.Add("UA-CPU", "x86") request.Headers.Add(Net.HttpRequestHeader.AcceptEncoding, "gzip, deflate") request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618) " request.ContentType = "application/x-www-form-urlencoded" request.ContentLength = data.Length str2 = request.GetRequestStream() str2.Write(data, 0, data.Length) str2.Close() response = request.GetResponse str = response.GetResponseStream() If response.Cookies IsNot Nothing AndAlso response.Cookies.Count <> 0 Then For Each cookie As Cookie In response.Cookies MessageBox.Show(cookie.ToString) cookieContainer = response.Cookies Next Else MessageBox.Show("no Cookie") End If If (response.ContentEncoding.ToLower().Contains("gzip")) Then str = New IO.Compression.GZipStream(str, IO.Compression.CompressionMode.Decompress) ElseIf (response.ContentEncoding.ToLower().Contains("deflate")) Then str = New IO.Compression.DeflateStream(str, IO.Compression.CompressionMode.Decompress) End If buffer = New IO.StreamReader(str, System.Text.Encoding.UTF8).ReadToEnd Return buffer End Function
-
13.02.09 09:16 #4
Hi,
was funktioniert denn bei dir nicht?
Kriegst du bei dem ersten Aufruf Cookies zurück? (Hat dein Responseobjekt überhaupt Cookies?)
Gruß Konstantin
-
Habe da ein ähnliches Problem.
bei request.coociecontainer wird ein count = 5 angezeigt (sollte doch bedeuten, dass es hier 5 cookies gibt, oder?)
bei response.cookie (wenn ich diese über "for each..." auslesen will, wird nichts mehr angezeigt...
Irgendwie verstehe ich das System nicht.
Eigentlich will ich mich nur bei einer Webseite einloggen und bei den nächsten POST-Requests die Cookies wieder mitsenden...
Gruß
KaiHat man ein Problem gelöst, tauchen neue auf...
Ähnliche Themen
-
Problem mit Webrequest
Von kerstel im Forum .NET Web und KommunikationAntworten: 1Letzter Beitrag: 27.07.09, 20:09 -
[C#] Webrequest, Cookie anhängen
Von awaiK im Forum .NET Web und KommunikationAntworten: 2Letzter Beitrag: 18.03.08, 13:20 -
WebRequest - Login
Von martinpriebe im Forum .NET Web und KommunikationAntworten: 4Letzter Beitrag: 14.03.08, 14:57 -
Frage zu WebRequest
Von andreas_gierisch im Forum .NET Web und KommunikationAntworten: 8Letzter Beitrag: 13.07.07, 11:18 -
C# Webrequest + Cookie via CookieCollection Emtpy Value Problem
Von Devilzimti im Forum .NET Web und KommunikationAntworten: 0Letzter Beitrag: 17.03.07, 17:02





Zitieren
Login





