8

我正在调用 REST Web 服务,而移动应用程序正在从其缓存中检索结果,而不是转到服务器。

我已经看到了其他建议的修复(类似的问题类似的问题2 ),但 Cache 属性在 silverlight 4 中不可用。

有谁知道如何强制 windows phone 7 上的 silverlight 4 发出请求而不命中缓存?

4

4 回答 4

16

虽然不理想,但一个简单的解决方案是发送带有值的“垃圾”字段DateTime.Now。这样,一个值总是全新的,永远不会被缓存。如果您在标准查询中执行此操作,例如:

"&junk=" + DateTime.Now;
于 2011-03-03T07:50:26.857 回答
5

在与 StackApps 交谈的溢出 7 中,我也遇到了这个问题——我唯一能想到的就是在 HTTP/REST 请求的末尾添加一个随机变量。

于 2011-03-02T20:33:03.220 回答
3

建议最多的解决方案与威廉梅拉尼的相同。但这并不理想,一些服务拒绝带有未知参数或任何参数的请求。在这种情况下,使用 IfModifiedSince 标头会更干净、更可靠,如下所示:

    WebClient wc = new WebClient();
    wc.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.UtcNow.ToString();
    wc.DownloadStringCompleted += wc_DownloadStringCompleted;
    wc.DownloadStringAsync(new Uri(bitstampUrl));
于 2014-01-21T20:53:49.950 回答
0
WebClient wc = new WebClient();
wc.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.UtcNow.ToString();

为我工作

于 2015-01-02T13:31:18.507 回答