WebRequest.CachePolicy 屬性

定義

取得或設定這個要求的快取原則。

C#
public virtual System.Net.Cache.RequestCachePolicy? CachePolicy { get; set; }
C#
public virtual System.Net.Cache.RequestCachePolicy CachePolicy { get; set; }

屬性值

定義快取原則的 RequestCachePolicy 物件。

範例

下列程式代碼範例示範如何設定 Web 要求的快取原則。

C#
// The following method demonstrates overriding the
// caching policy for a request.
public static WebResponse GetResponseNoCache(Uri uri)
{
    // Set a default policy level for the "http:" and "https" schemes.
    HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default);
    HttpWebRequest.DefaultCachePolicy = policy;
    // Create the request.
    WebRequest request = WebRequest.Create(uri);
    // Define a cache policy for this request only.
    HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
    request.CachePolicy = noCachePolicy;
    WebResponse response = request.GetResponse();
    Console.WriteLine("IsFromCache? {0}", response.IsFromCache);
    return response;
}

備註

注意

WebRequestHttpWebRequestServicePointWebClient 已經過時,您不應該將它們用於新的開發。 請改用 HttpClient

目前快取原則和快取中要求的資源是否存在,會判斷是否可以從快取擷取回應。 使用快取的回應通常可改善應用程式效能,但快取中的回應與伺服器上的回應不符的風險。

您可以在 Machine.config 組態檔中指定預設快取原則,或為使用超文本傳輸通訊協定 (HTTP) 或安全超文本傳輸通訊協定 (HTTPS) URI 配置的要求設定 DefaultCachePolicy 屬性。

只有在擷取資源響應數據流並讀取至數據流結尾時,才會將資源的複本新增至快取。 因此,相同資源的另一個要求可以使用快取的複本,視此要求的快取原則層級而定。

適用於

產品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

另請參閱