1

我已经看到了各种类似的问题,但没有什么能帮助解决我的问题。这是我正在使用的代码片段:

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

出于某种原因,存储到 responseString 中的任何内容都会被缓存,即使我已经告诉 HTTPWebRequest 绕过缓存。大约每小时,我都会收到一个更新的响应,但是如果我更改任何内容,更新的响应(现在应该无效,因为有一个更新的版本)仍然传递给我。权威人士告诉我,服务器设置为不缓存响应,所以我一定做错了什么。我就是想不通是什么。

我在某处读到它可能有助于使用套接字制作更底层的加载器。但是,我找不到任何可以轻松展示如何做到这一点的地方。如果这是我应该做的,请让我知道在哪里寻找帮助。

谢谢。

4

1 回答 1

0

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

于 2013-09-04T18:34:32.877 回答