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 数据正确。然后我执行以下操作:
- 离开显示数据的页面
- 手动更改Webservice数据库中的部分数据
- 返回页面
我现在希望它能提取我在步骤 #2 中更改的新数据,但它仍然是 returns 初始数据。
如果我在网络浏览器中输入 'my_secret_uri',它会正确显示修改后的数据。
如果我停止应用程序并再次启动它,它也会正确显示修改后的数据。
好像只要App是运行.
就好像最初拉取的数据被缓存了一样
知道哪里出了问题吗?
Windows Phone 具有相当激进的网络缓存。除非您的服务器显式设置缓存持续时间 header,否则它将 return 所有具有相同 Uri 的请求直接从缓存中获取,甚至无需联系您的服务器。
您可以通过以下方式关闭此行为:
- 设置缓存持续时间header(cache-control:no-cache,等等)。
- 正在将随机数添加到您的请求查询字符串中。
我遇到了一个让我抓狂的问题。我搜索了几个小时没有任何运气的答案。 我正在开发 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 数据正确。然后我执行以下操作:
- 离开显示数据的页面
- 手动更改Webservice数据库中的部分数据
- 返回页面
我现在希望它能提取我在步骤 #2 中更改的新数据,但它仍然是 returns 初始数据。 如果我在网络浏览器中输入 'my_secret_uri',它会正确显示修改后的数据。 如果我停止应用程序并再次启动它,它也会正确显示修改后的数据。
好像只要App是运行.
就好像最初拉取的数据被缓存了一样知道哪里出了问题吗?
Windows Phone 具有相当激进的网络缓存。除非您的服务器显式设置缓存持续时间 header,否则它将 return 所有具有相同 Uri 的请求直接从缓存中获取,甚至无需联系您的服务器。
您可以通过以下方式关闭此行为:
- 设置缓存持续时间header(cache-control:no-cache,等等)。
- 正在将随机数添加到您的请求查询字符串中。