如何强制Windows Phone 8从服务器重新加载数据

时间:2013-08-02 09:52:19

标签: c# xaml windows-phone-8 dotnet-httpclient

我在Windows Phone 8应用程序中使用HttpClient来调用json服务,获取结果并在当前页面中显示它。 为了清楚起见,我已将debugguer附加到iis,以查看httpclient何时进行调用。 问题是,在从缓存加载数据并且不再次调用服务器之后,调用仅在第一次执行。

这是按钮和文本块的设计代码:

<Button Content="Update" Click="ActualSession_Click"/>
<TextBlock Name="MyTextBlock" TextWrapping="Wrap" HorizontalAlignment="Center"/>

这是按钮点击的代码:

private async void ActualSession_Click(object sender, RoutedEventArgs e)
        {
            string site = "http://192.168.1.17:5465/MessagesWCF/Messages.svc/Test";
            MyTextBlock.Text = "";
            MyTextBlock.Text = await Execute(site);
        }

public async Task<string> Execute(string url)
        {
            var httpClient = new HttpClient();

            var request = await httpClient.GetAsync(new Uri(url, UriKind.RelativeOrAbsolute));
            var txt = await request.Content.ReadAsStringAsync();
            return txt;
        }

请帮我按下每次点击重新调用服务器的按钮,并更新内容(我已经让服务器每次调用时给出不同的结果,以确保它已被调用或未被调用)。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

解决方法是在每次调用时为URL的查询字符串添加不同的值:

string site = "http://192.168.1.17:5465/MessagesWCF/Messages.svc/Test?nocache=" + Guid.NewGuid();