Windows phone 7 如何使用WebClient和Windows Phone 7禁用缓存

Windows phone 7 如何使用WebClient和Windows Phone 7禁用缓存,windows-phone-7,webclient,cache-control,Windows Phone 7,Webclient,Cache Control,我正在呼叫REST web服务,移动应用正在从其缓存中检索结果,而不是转到服务器 我已经看到了其他建议的修复(和),但在silverlight 4中没有缓存属性 有人知道如何强制windows phone 7上的silverlight 4发出请求而不命中缓存吗?我在overflow 7与StackApps交谈时也遇到了这个问题-我唯一能想到的是在HTTP/REST请求的末尾添加一个随机变量。虽然不理想,一个简单的解决方案是发送类似“垃圾”字段的内容,其值为DateTime.Now。这样,值总是全

我正在呼叫REST web服务,移动应用正在从其缓存中检索结果,而不是转到服务器

我已经看到了其他建议的修复(和),但在silverlight 4中没有缓存属性


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

我在overflow 7与StackApps交谈时也遇到了这个问题-我唯一能想到的是在HTTP/REST请求的末尾添加一个随机变量。

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

"&junk=" + DateTime.Now;

提出最多的解决方案与William Melani的相同。 但这并不理想,有些服务拒绝具有未知参数或任何参数的请求。在这种情况下,使用IfModifiedSince收割台更干净、更可靠,如下所示:

    WebClient wc = new WebClient();
    wc.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.UtcNow.ToString();
    wc.DownloadStringCompleted += wc_DownloadStringCompleted;
    wc.DownloadStringAsync(new Uri(bitstampUrl));

为我工作

注意WP7使用了Silverlight 3的变体,而不是4。这会更干净”?nocache=“+Environment.TickCount
WebClient wc = new WebClient();
wc.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.UtcNow.ToString();