当进行Web请求时,如果请求地址与前一样相同,系统不会真正的去访问服务器请求数据,而是直接返回“Magic Cache”中的缓存结果,明显我们并不希望这样。此问题的最简单解决方法是08年提出的,将一个新的GUID作为请求页面的参数,使每次构造的网址都是唯一的。
我加入了一个这样的方法,在每次创建URI之前调用,使它被插入一个GUID:
private static Uri CreateMagicUriString(Uri uri)
{
var ub = new UriBuilder(uri);
var queryToAppend =Guid.NewGuid().ToString();
if (ub.Query.Length > 1)
{
ub.Query = ub.Query.Substring(1) + "&" + queryToAppend;
}
else
{
ub.Query = queryToAppend;
}
return ub.Uri;
}