簡體   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