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) {
  // делаем дела.
}

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.