开发者

How do you disable caching with WebClient and Windows Phone 7

I am making a call to a REST web service and the mobile app is retrieving the results from its cache and not going to the server.

I have seen other suggested fixes (similar issue and similar issue2) but the Cache property is not available in silverli开发者_StackOverflow中文版ght 4.

Does anyone have an idea of how to force silverlight 4 on windows phone 7 to make a request and not hit the cache?


Although not ideal, a easy solution is to send something like the field "junk" with the value DateTime.Now. That way, a value is always brand new, and will never get cached. If you were doing this in a standard querysting for example:

"&junk=" + DateTime.Now;


I've hit this problem too on overflow 7 talking to StackApps - the only thing I could think of was to add an addition random variable to the end of the HTTP/REST request.


The most proposed solution is the same as William Melani's. But it is not ideal and some services reject requests with unknown parameters or any parameter. In this case it is cleaner and more reliable to use the IfModifiedSince header as follows:

    WebClient wc = new WebClient();
    wc.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.UtcNow.ToString();
    wc.DownloadStringCompleted += wc_DownloadStringCompleted;
    wc.DownloadStringAsync(new Uri(bitstampUrl));


WebClient wc = new WebClient();
wc.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.UtcNow.ToString();

worked for me

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜