Danke: 0
Ergebnis 1 bis 9 von 9
-
Mich gibt's schon länger
- 15.10.2014, 18:42
- #1
Hi leute,
ich versuche wie das thema schon sagt cookies bei einem web request auszulesen. Leider gelingt mir das bisher nicht.
Die Coockies stehen nur im webRequest zur verfügung, beim response ist Coockies leer. Warum ist das so? Und wie kann ich die Coockies direckt aus dem webRequest auslesen? Über die .GetCoockie() methode muss man eine Uri angeben ... aber kann man nicht einfach alle auslesen?Code:try { HttpWebRequest webRequest = (HttpWebRequest)result.AsyncState; //webRequest.CookieContainer.Count == 2 using (HttpWebResponse response = (HttpWebResponse)webRequest.EndGetResponse(result)) { //response.Cookies.Count == 0 using (StreamReader streamReader = new StreamReader(response.GetResponseStream())) { Response = streamReader.ReadToEnd(); streamReader.Close(); response.Close(); } } if (this.GetResponse != null) this.GetResponse(this, new EventArgs()); } catch (Exception ex) { }
-
Mich gibt's schon länger
- 16.10.2014, 21:42
- #2
Niemand nen Ansatz?
-
Gehöre zum Inventar
- 17.10.2014, 10:35
- #3
Was passiert wenn du es so wie in der Antwort hier machst: http://stackoverflow.com/questions/5...ttpwebresponse
Also einen eigenen Cookie-Container anlegst und an den Request übergibst bevor du in absendest?
-
Mich gibt's schon länger
- 17.10.2014, 11:39
- #4
Das mach ich bereits. Wenn ich das nicht machen würde, wäre webRequest.CookieContainer == null
-
Mich gibt's schon länger
- 17.10.2014, 20:07
- #5
hier mal der ganze request ... vieleicht kann man ja da was erkennen
Code:public void SubmitAction(string url) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url)); request.ContentType = "application/x-www-form-urlencoded"; request.Method = "POST"; request.CookieContainer = new CookieContainer(); //request.AllowAutoRedirect = false; request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), request); } catch (Exception e) { } } private void GetRequestStreamCallback(IAsyncResult asyncResult) { string json = RequestData.Stringify(); HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState; try { using (Stream postStream = request.EndGetRequestStream(asyncResult)) { StringBuilder postData = new StringBuilder(); postData.Append("app=" + json); postData.Append("&crc=" + CreateChecksum(json)); byte[] postDataByteArray = Encoding.UTF8.GetBytes(postData.ToString()); postStream.Write(postDataByteArray, 0, postData.Length); postStream.Close(); } request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request); } catch (Exception ex) { } } private void GetResponseCallback(IAsyncResult result) { try { HttpWebRequest webRequest = (HttpWebRequest)result.AsyncState; //webRequest.CookieContainer.Count == 2 using (HttpWebResponse response = (HttpWebResponse)webRequest.EndGetResponse(result)) { //response.Cookies == 0 using (StreamReader streamReader = new StreamReader(response.GetResponseStream())) { Response = streamReader.ReadToEnd(); streamReader.Close(); response.Close(); } } if (this.GetResponse != null) this.GetResponse(this, new EventArgs()); } catch (Exception ex) { } }
-
Mich gibt's schon länger
- 15.11.2014, 13:08
- #6
HttpWebRequest ist uralt. Und dein Code voller boilerplate.
Benutze doch eine moderne Klasse für solche Request.
http://msdn.microsoft.com/de-de/libr...v=vs.118).aspx (Gibt es über Nuget für WP8)
Hier ist ein Beispiel wie man an die Cookies kommt http://stackoverflow.com/a/13318204 (nicht so schön, da .Result statt await verwendet wird, aber egal)
-
Mich gibt's schon länger
- 16.11.2014, 20:55
- #7
Ich wusste nich das die Uralt ist ... das steht ja auch nirgends ^^
Aber danke weiss ich bescheid
nur leider will das auch nich so ganz klappen :/
responseCookies bleibt auch hier Leer ... cookies jedoch hat seiner 2 CookiesCode:CookieContainer cookies = new CookieContainer(); HttpClientHandler handler = new HttpClientHandler(); handler.CookieContainer = cookies; //handler.AllowAutoRedirect = false; HttpClient httpClient = new HttpClient(handler) { BaseAddress = mainUri, Timeout = TimeSpan.FromSeconds(5) }; try { HttpResponseMessage response = await httpClient.PostAsync(subUrl, content); using (HttpContent responseContent = response.Content) { string result = await responseContent.ReadAsStringAsync(); if (!String.IsNullOrEmpty(result)) { Response = result; IEnumerable<Cookie> responseCookies = cookies.GetCookies(new Uri("...")).Cast<Cookie>(); foreach (Cookie cookie in responseCookies) { } } } }
-
Mich gibt's schon länger
- 16.11.2014, 22:15
- #8
-
Mich gibt's schon länger
- 16.11.2014, 22:41
- #9
Ja genau cookies.Count == 2
Jo die sind gleich, habs aber dennoch mal deine variante ausprobiert ... leider das gleiche resultat
Ähnliche Themen
-
Excel-Datei auslesen
Von A-n-d-y im Forum ProgrammierenAntworten: 2Letzter Beitrag: 05.09.2008, 16:24 -
Ordnerinhalt auslesen/Fehlermeldung
Von fsg4u im Forum ProgrammierenAntworten: 1Letzter Beitrag: 04.08.2008, 12:00 -
PocketPC / WinCE - Auslesen des netzwerk Status
Von Azubi im Forum ProgrammierenAntworten: 1Letzter Beitrag: 03.07.2006, 12:52 -
Zeit auslesen
Von marc_ch im Forum ProgrammierenAntworten: 10Letzter Beitrag: 01.10.2003, 11:21















Gaming in der eigenen Cloud - VPS...