2013-02-25 44 views
1

我创建了一个json web service &用于我的网站。
现在我想在我的Windows Phone应用程序中使用它来显示数据,该数据由该Web服务接收。使我心中已经下面写--->在wp7应用程序中的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             

代码代码工作正常,但一些请求后的数据没有更新。所以我认为有一些缓存问题 &我不知道如何禁用缓存或任何其他方式获取每个请求更新的数据 bcoz我从未使用过的web客户端befor。

所以,如果有人使用了Web服务比PLZ检查我上面的代码&做评论或编辑,如果有这个缓存问题的任何解决方案...........感谢名单

回答

4

一个简单的解决办法是,追加,在查询字符串的末尾上请求操作搜索变化的值:

"?disablecache=" + Environment.TickCount 
1

添加no-cache标题于该请求:

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

::'Headers.Add'不配套,表现出对'Add' – 2013-02-25 11:24:13

1

尝试本身这样的“缓存控制”标题:

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

错误:仍无法正常工作(数据未更新)任何其他方式修理它 ? – 2013-02-25 12:29:14

+0

你是否也试过Olvier Payen的诡计? – 2013-02-25 12:35:32

+0

Yape !!!它的工作 – 2013-02-25 12:36:31

0

我也试过奥利弗的把戏,它的工作!

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

所以,我想这和它的工作:

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