我在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;
}
请帮我按下每次点击重新调用服务器的按钮,并更新内容(我已经让服务器每次调用时给出不同的结果,以确保它已被调用或未被调用)。 提前谢谢。
答案 0 :(得分:2)
解决方法是在每次调用时为URL的查询字符串添加不同的值:
string site = "http://192.168.1.17:5465/MessagesWCF/Messages.svc/Test?nocache=" + Guid.NewGuid();