WP7 HttpWebRequest没有缓存

Jan*_*nci 18 caching httpwebrequest windows-phone-7

似乎默认情况下启用WP7中的HttpWebRequest缓存,如何将其关闭?添加随机param url +"?param ="+ RND.Next(10000)有效,但它非常棘手,我不确定它是否适用于所有服务器.

frn*_*rno 19

为了将来参考,这对我有用(由于项目要求,我无法使用额外的查询参数):

        HttpWebRequest request = HttpWebRequest.CreateHttp(url);
        if (request.Headers == null)
        {
            request.Headers = new WebHeaderCollection();
        }
        request.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.UtcNow.ToString();
Run Code Online (Sandbox Code Playgroud)


小智 11

HttpClient(适用于Windows Phone的Portable)的情况下,"Cache-Control":服务器端的"no-cache"有时只能工作.我也不能将查询字符串随机值添加到RESTful api调用中.

来自@frno的解决方案效果很好,看起来像HttpClient:

client.DefaultRequestHeaders.IfModifiedSince = DateTime.UtcNow;
Run Code Online (Sandbox Code Playgroud)

谢谢.


Mat*_*cey 6

你怎么知道它是电话,而不是服务器(或介于两者之间的代理)缓存?
你用Fiddler2(或同等版本)检查过这个吗?

您是否尝试过设置标头以禁用缓存?
就像是:

myRequest = (HttpWebRequest)WebRequest.Create(myUri);

myRequest.Headers["Cache-Control"] = "no-cache";
myRequest.Headers["Pragma"] = "no-cache";
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,更改标题不起作用. (3认同)
  • 它不是服务器,因为相同的URL会在BlackBerry,IPhone和Android上进行核心更新 (2认同)
  • 我使用ReSTful端点遇到了这个问题,我正在为WP7应用程序开发.更改服务器以确保它返回"Cache-Control"标头设置为"no-cache"的响应解决了此问题. (2认同)