繁体   English   中英

C#-为什么我的HTTPWebRequest每次都返回一个缓存的响应?

[英]C# - Why is my HTTPWebRequest returning a cached response every time?

我已经看到各种类似的问题,但是没有任何事情可以解决我的问题。 这是我正在使用的代码片段:

NetworkCredential credentials = new NetworkCredential(CredentialsManager.Username, CredentialsManager.Password);

HttpWebRequest getReq = (HttpWebRequest) WebRequest.Create(m_editPageUrl);
getReq.CachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache); // I've also tried RequestCacheLevel.NoCacheNoStore
getReq.Credentials = credentials;
getReq.Timeout = 1000;
getReq.Method = "GET";
getReq.Accept = "text/html";

string responseString;
using (HttpWebResponse getResponse = (HttpWebResponse) getReq.GetResponse())
{
    using (Stream responseStream = getResponse.GetResponseStream())
    {
        if (responseStream == null)
            throw new Exception("Did not receive a response from the specified page.");

        using (StreamReader reader = new StreamReader(responseStream))
            responseString = reader.ReadToEnd();
    }
}

由于某种原因,即使我已告诉HTTPWebRequest绕过缓存,存储在responseString中的任何内容也会被缓存。 大约每个小时,我都会收到更新的响应,但是如果我更改了任何内容,更新的响应(由于有更新的版本,现在应该无效)仍然传递给我。 有人告诉我,服务器已设置为不缓存响应,因此我必须做错了。 我只是不知道是什么。

我在某处读到它可能有助于使用套接字制作更底层的加载器。 但是,我找不到任何容易说明如何执行此操作的地方。 如果这是我应该做的,请告诉我在哪里可以寻求帮助。

谢谢。

在对应用程序访问的服务器上托管的站点的代码进行一些挖掘时,我发现该站点具有要维护的缓存服务。 一旦禁用此功能,一切都会像魅力一样。 我的原始代码工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM