WinRT HttpClient 问题

WinRT HttpClient issue

我遇到了一个让我抓狂的问题。我搜索了几个小时没有任何运气的答案。 我正在开发 WINRT/Windows Phone 8.1 应用程序,我从以下代码调用 RESTful 网络服务:

HttpClient httpClient = new HttpClient();
HttpResponseMessage response = await httpClient.GetAsync(new Uri("my_secret_uri"));
string data = await response.Content.ReadAsStringAsync();
MessageDialog dialog = new MessageDialog(data);
await dialog.ShowAsync();

这很好用,returns 数据正确。然后我执行以下操作:

  1. 离开显示数据的页面
  2. 手动更改Webservice数据库中的部分数据
  3. 返回页面

我现在希望它能提取我在步骤 #2 中更改的新数据,但它仍然是 returns 初始数据。 如果我在网络浏览器中输入 'my_secret_uri',它会正确显示修改后的数据。 如果我停止应用程序并再次启动它,它也会正确显示修改后的数据。

好像只要App是运行.

就好像最初拉取的数据被缓存了一样

知道哪里出了问题吗?

Windows Phone 具有相当激进的网络缓存。除非您的服务器显式设置缓存持续时间 header,否则它将 return 所有具有相同 Uri 的请求直接从缓存中获取,甚至无需联系您的服务器。

您可以通过以下方式关闭此行为:

  1. 设置缓存持续时间header(cache-control:no-cache,等等)。
  2. 正在将随机数添加到您的请求查询字符串中。