在wp7应用程序中的Web客户端请求缓存问题

我创建了一个json web service并在我的网站上使用。
现在我想在我的Windows手机应用程序中使用它来显示该Web服务正在接收的数据。 所以我写下面的代码—>

 //// some code StartThread(); } void StartThread() { DispatcherTimer TradeThread = new DispatcherTimer(); TradeThread.Interval = TimeSpan.FromMilliseconds(1000); TradeThread.Tick += new EventHandler(BindData); TradeThread.Start(); } void BindData(object sender, EventArgs e) { WebClient wc = new WebClient(); wc.DownloadStringAsync(new Uri("some URL")); wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted); } void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { JObject jsonObject = JObject.Parse(e.Result); ///// some code 

代码工作正常, 但在一些请求之后数据没有更新。 所以我认为有一些缓存问题 ,我不知道如何禁用缓存或任何替代方式来获取每个requets bcoz 上的更新数据我永远不会使用Web客户端。

因此,如果有人使用网络服务而不是plz检查上面的代码并做评论或编辑它,如果有任何解决方案的缓存问题……….. thanx

一个简单的解决方法是在查询字符串末尾添加一个在earch请求上更改的值:

 "?disablecache=" + Environment.TickCount 

向请求添加无缓存标头:

 wc.Headers.Add("Cache-Control: no-cache"); 

尝试以这种方式设置“Cache-Control”标头:

 wc.Headers["Cache-Control"] = "no-cache"; 

我也试过奥利弗的伎俩而且它奏效了!

我在使用我的方法中的额外参数时遇到了一些麻烦,该参数满足带有和不带参数的请求。

所以我尝试了这个并且它有效:

 WebClient wc = new WebClient(); wc.Headers["If-Modified-Since"] = DateTimeOffset.Now.ToString();