2012-04-04 3 views
0

У меня есть приложение для Windows-телефона, которое подключается к локальному серверу IIS. Он загружает некоторые данные json и отображает их в списке. У меня также есть кнопка обновления на странице. Когда страница загружается, все правильно, но нажатие кнопки обновления возвращает только те данные, которые были доступны при загрузке страницы. Я проверил свой веб-браузер с помощью uri, и обновленные данные показывают это правильно. Также, если я выхожу из приложения Windows Phone и перезагружаю его данные. Вот какой-то тупой код, с которым я тестирую.Windows Phone WebClient не обновит новые данные

На странице загрузки:

 WebClient download = new WebClient(); 
     download.DownloadStringCompleted += new DownloadStringCompletedEventHandler(download_DownloadStringCompleted); 
     download.DownloadStringAsync(new Uri("http://sampledata/data")); 

     void download_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
     { 
      MessageBox.Show(e.Result); 
     } 

Это прекрасно работает и отображает окно сообщения с моей JSon строки.

На Refresh:

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     WebClient refresh = new WebClient(); 
     refresh.DownloadStringCompleted += new DownloadStringCompletedEventHandler(refresh_DownloadStringCompleted); 
     refresh.DownloadStringAsync(new Uri("http://sampledata/data")); 
    } 

    void refresh_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
    { 
     MessageBox.Show(e.Result); 
    } 

Это показывает ту же JSon строку, которая отображается на странице загрузки, даже если данные изменились. У кого-нибудь есть идеи? Благодарю.

ответ

0

Сколько данных вы вытаскиваете с сервера? Попробуйте с HttpWebRequest, если вам нужен тяжелый подъем. У меня также были некоторые исследования с загрузкой и обновлением данных в webclient. Каждое изменение на сервере происходит с большой задержкой ...

1

попробуйте добавить отметку времени до конца URL-адреса. подобный refresh.DownloadStringAsync(new URI("http://sampledata/data" + DateTime.Now.ToString()));

Смежные вопросы