据我所知,HttpWebRequest类总是缓存下载的数据。现在我不介意这一点,但是在应用程序持续时间内通过HttpWebRequest彻底解析相同的URL之后,我注意到数据已损坏(如下载的JSON数据变得无法解析)。重新启动手机模拟器后,一切都变得平静,直到再次发生。
现在我只是想知道是否可以关闭HttpWebRequest中的缓存。
以下是我用来进行httpwebrequest调用的一些代码:
var request = (HttpWebRequest)WebRequest.Create(string.Format(uri));
request.BeginGetResponse(a =>
{
var response = request.EndGetResponse(a);
var responseStream = response.GetResponseStream();
using (var sr = new StreamReader(responseStream))
{
string json = sr.ReadToEnd();
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
//Newtonsoft.Json.Linq;
JObject artistObject = JObject.Parse(json);
//...etc
});
}
}, null);
}
答案 0 :(得分:4)
绕过此缓存的常用技巧是向查询字符串添加一个参数,该参数在连续调用时递增。该主题更详细地讨论了silverlight行为,并涵盖了一些服务器处理,如果你有这种控制,你也可以看一下。
话虽如此,您是否能够简单地制作一份您正在经历的腐败问题?可能值得研究一下。