Benutzer mit den meisten Antworten
Win Phone 8 Webclient

Frage
-
Hi
Habe ein Problem mit dem WebClient in der Win Phone API V8:
Das Programm mit dem Codeausschnitt funktioniert beim ersten Aufruf, aber bei jedem weiteren Aufruf ist das Ergebnis (e.result) dasselbe. Nur Stoppen und wieder starten liefert ein neues Ergebnis. Das hat wahrscheinlich mit dem Browser Cache zu tun. Dasselbe Kommando im IE10 manuell gegeben liefert immer korrekte aktuelle Ergebnisee.
Codeausschnitt:
private bool GetWebResults(string sURI)
{
try
{
Uri sysURI = new Uri(sURI);if (NetWorkAvailable(sURI))
{
if (client.IsBusy) return false;
{
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCallback);
client.DownloadStringAsync(sysURI);
}
return true;
}
return true;
}
catch (System.InvalidOperationException)
{
throw;
}
catch (Exception ex)
{
if (debug) MessageBox.Show(ex.ToString(), "Error", MessageBoxButton.OK);
return false;
}
}private void DownloadStringCallback(Object sender, // Evaluate results from Web
DownloadStringCompletedEventArgs e)
{
string WebResult = ""; // WebResulttry
{
WebResult = (string)e.Result;... Visualisieren von "WebResult ....
client.DownloadStringCompleted -= DownloadStringCallback;
return;
}
catch (Exception ex)
{
if (debug) MessageBox.Show(ex.ToString(), "Error", MessageBoxButton.OK);
}
finally
{
client.DownloadStringCompleted -= DownloadStringCallback;
}
}Kennt jemand das Problem?
Hans-Joachim
Hans-Joachim Mundt mailto: hans-j.mundt@live.de
Antworten
-
Ja, der Webserver ist bestimmt OK, das Problem liegt ja an dem Cachingverhalten der WebClient Klasse, welches sich nicht wirklich umgehen lässt. Aber mit dem Workaround ruft man ja keine andere URL auf, sondern die gleiche und sendet halt Parameter mit, damit die URL immer anders aussieht. Die Webseite muss die Parameter natürlich ignorieren, dann sollte es klappen. Ansosnten gibt es natürlich die Alternative die HttpWebRequest Klasse zu verwenden.
http://patrickgetzmann.wordpress.com/
- Als Antwort vorgeschlagen PeterNowak Freitag, 28. Dezember 2012 16:48
- Als Antwort markiert HansBacNet Freitag, 28. Dezember 2012 17:16
Alle Antworten
-
Hilf Dir folgender Workaround ?: http://stackoverflow.com/questions/5173052/how-do-you-disable-caching-with-webclient-and-windows-phone-7
http://patrickgetzmann.wordpress.com/
-
Hallo Patrick,
leider nicht, auch wenn ich zwischendurch eine ganz andere URL lese (die dann auch die Daten liefert) wird bei erneuter Abfrage wieder der Cache ausgegeben.
Der Webserver ist OK, da ich mit einer Windows Modern UI Anwendung, dort immer korrekte Antworten bekomme.
Hans-Joachim
Hans-Joachim Mundt mailto: hans-j.mundt@live.de
-
Ja, der Webserver ist bestimmt OK, das Problem liegt ja an dem Cachingverhalten der WebClient Klasse, welches sich nicht wirklich umgehen lässt. Aber mit dem Workaround ruft man ja keine andere URL auf, sondern die gleiche und sendet halt Parameter mit, damit die URL immer anders aussieht. Die Webseite muss die Parameter natürlich ignorieren, dann sollte es klappen. Ansosnten gibt es natürlich die Alternative die HttpWebRequest Klasse zu verwenden.
http://patrickgetzmann.wordpress.com/
- Als Antwort vorgeschlagen PeterNowak Freitag, 28. Dezember 2012 16:48
- Als Antwort markiert HansBacNet Freitag, 28. Dezember 2012 17:16