1

を作成json web serviceし、自分の Web サイトで使用しました。
今、私は自分の Windows Phone アプリでそれを使用して、その 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                                                

コードは正常に動作していますが、いくつかのリクエストの後、データが更新されません。だから私はいくつかのキャッシュの問題があると思います.キャッシュ無効にする方法や、各リクエストで更新されたデータを取得する別の方法がわかりません。

したがって、誰かがウェブサービスを使用したことがある場合は、上記の私のコードを確認して、このキャッシュの問題の解決策がある場合はコメントまたは編集してください ............ありがとう

4

4 に答える 4

4

簡単な回避策は、クエリ文字列の最後にearchリクエストで変更される値を追加することです。

"?disablecache=" + Environment.TickCount
于 2013-02-25T11:27:49.543 に答える
1

「Cache-Control」ヘッダーを次のように設定してみてください。

wc.Headers["Cache-Control"] = "no-cache";
于 2013-02-25T12:15:45.197 に答える
1

Add a no-cache header to the request:

wc.Headers.Add("Cache-Control: no-cache");
于 2013-02-25T11:12:25.530 に答える
0

オリバーのトリックも試してみましたが、うまくいきました!

パラメータの有無にかかわらずリクエストに対応するメソッドで追加のパラメータを使用すると、問題が発生します。

だから私はこれを試してみましたが、うまくいきました:

WebClient wc = new WebClient();    
wc.Headers["If-Modified-Since"] = DateTimeOffset.Now.ToString();
于 2014-05-22T15:08:28.120 に答える