c# – WinRT HttpClient问题

我有一个让我发疯的问题.我没有运气就搜索了几个小时的答案.

我正在开发一个WINRT /
Windows Phone 8.1应用程序,我从以下代码调用RESTful Web服务:

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();

这工作正常,它返回正确的数据.然后我做以下事情:

>导航离开显示数据的页面
>手动更改Webservice数据库中的某些数据
>导航回页面

我现在希望它能够提取我在步骤#2中更改的新数据,但它仍会返回初始数据.
如果我在webbrowser中输入“my_secret_uri”,它会正确显示修改后的数据.
如果我停止应用程序并再次启动它,它也会正确显示修改后的数据.

只要应用程序正在运行,就好像最初提取的数据一样被缓存.

知道什么是错的吗?

最佳答案 Windows Phone有一个非常积极的Web缓存.除非您的服务器显式设置缓存持续时间标头,否则它将直接从缓存返回具有相同Uri的所有请求,甚至无需联系您的服务器.

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

>设置缓存持续时间标头(缓存控制:无缓存等).
>在请求查询字符串中添加随机数.

点赞