1

我在我的 Windows Phone 8 应用程序中使用 HttpClient 来调用 json 服务,获取结果并将其显示在当前页面中。为了清楚起见,我已将调试器附加到 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;
        }

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

4

1 回答 1

2

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

string site = "http://192.168.1.17:5465/MessagesWCF/Messages.svc/Test?nocache=" + Guid.NewGuid();
于 2013-08-02T09:56:10.513 回答