我已经看到了各种类似的问题,但没有什么能帮助解决我的问题。这是我正在使用的代码片段:
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 绕过缓存。大约每小时,我都会收到一个更新的响应,但是如果我更改任何内容,更新的响应(现在应该无效,因为有一个更新的版本)仍然传递给我。权威人士告诉我,服务器设置为不缓存响应,所以我一定做错了什么。我就是想不通是什么。
我在某处读到它可能有助于使用套接字制作更底层的加载器。但是,我找不到任何可以轻松展示如何做到这一点的地方。如果这是我应该做的,请让我知道在哪里寻找帮助。
谢谢。