How do you disable caching with WebClient and Windows Phone 7

丶灬走出姿态 提交于 2019-11-28 07:25:45

问题


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 silverlight 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?


回答1:


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;



回答2:


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.




回答3:


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));



回答4:


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

worked for me



来源:https://stackoverflow.com/questions/5173052/how-do-you-disable-caching-with-webclient-and-windows-phone-7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!