1

json web service在我的网站上创建了一个 & 使用。
现在我想在我的 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                                                

代码工作正常,但经过一些请求后数据没有更新。所以我认为存在一些缓存问题,我不知道如何禁用缓存或任何替代方法来获取每个请求的更新数据,因为我以前从未使用过 Web 客户端。

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

4

4 回答 4

4

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

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

在请求中添加一个 no-cache 标头:

wc.Headers.Add("Cache-Control: no-cache");
于 2013-02-25T11:12:25.530 回答
1

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

wc.Headers["Cache-Control"] = "no-cache";
于 2013-02-25T12:15:45.197 回答
0

我也试过奥利弗的把戏,它奏效了!

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

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

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