【问题标题】:WinRT HttpClient issueWinRT HttpClient 问题
【发布时间】:2015-01-17 23:57:26
【问题描述】:

我有一个让我发疯的问题。我搜索了几个小时没有任何运气的答案。 我正在开发一个 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();

这工作正常,它返回正确的数据。然后我执行以下操作:

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

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

就好像最初拉取的数据在App运行时就被缓存了一样。

知道有什么问题吗?

【问题讨论】:

标签: c# web-services rest windows-runtime windows-phone-8.1


【解决方案1】:

Windows Phone 具有相当激进的网络缓存。除非您的服务器明确设置缓存持续时间标头,否则它将直接从缓存中返回具有相同 Uri 的所有请求,甚至无需联系您的服务器。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多