WebClient и кэширование
Задача
Приложение для WP7 с WebClient для получения данных с url. При каждом обращении к данному url в браузере данные обновляются.
Проблема
Есть функция, которая должна при каждом ее вызове должна получать данные с определенного url:
void LoadRandomData() {
WebClient wclientRandom = new WebClient();
string url = "http://localhost/random.php";
wclientRandom.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wclientRandom_DownloadStringCompleted);
wclientRandom.DownloadStringAsync(new Uri(url));
}
void wclientRandom_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) {
string result = e.Result;
// делаем дела.
}
Но при получении данных программно из WP7 приложения данные возвращаются
каждый раз одни и те же. То есть при вызове LoadRandomData()
в e.Result
всегда получали одну и ту же строку.
Решение
Решение оказалось до безобразия простым: добавляем случайный get-параметр и при каждом вызове будем получать новые данные:
void LoadRandomData() {
WebClient wclientRandom = new WebClient();
string url = "http://localhost/random.php?r=" + DateTime.Now.Ticks.ToString();
wclientRandom.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wclientRandom_DownloadStringCompleted);
wclientRandom.DownloadStringAsync(new Uri(url));
}
void wclientRandom_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) {
// делаем дела.
}