2013-02-25 30 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();