WebRequest.CachePolicy Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví zásady mezipaměti pro tento požadavek.
public:
virtual property System::Net::Cache::RequestCachePolicy ^ CachePolicy { System::Net::Cache::RequestCachePolicy ^ get(); void set(System::Net::Cache::RequestCachePolicy ^ value); };
public virtual System.Net.Cache.RequestCachePolicy? CachePolicy { get; set; }
public virtual System.Net.Cache.RequestCachePolicy CachePolicy { get; set; }
member this.CachePolicy : System.Net.Cache.RequestCachePolicy with get, set
Public Overridable Property CachePolicy As RequestCachePolicy
Hodnota vlastnosti
Objekt RequestCachePolicy, který definuje zásady mezipaměti.
Příklady
Následující příklad kódu ukazuje nastavení zásad mezipaměti pro webový požadavek.
// The following method demonstrates overriding the
// caching policy for a request.
static WebResponse^ GetResponseNoCache( Uri^ uri )
{
// Set a default policy level for the "http:" and "https" schemes.
HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::Default );
HttpWebRequest::DefaultCachePolicy = policy;
// Create the request.
WebRequest^ request = WebRequest::Create( uri );
// Define a cache policy for this request only.
HttpRequestCachePolicy^ noCachePolicy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::NoCacheNoStore );
request->CachePolicy = noCachePolicy;
WebResponse^ response = request->GetResponse();
Console::WriteLine( L"IsFromCache? {0}", response->IsFromCache );
return response;
}
// 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;
}
Poznámky
Opatrnost
WebRequest
, HttpWebRequest
, ServicePoint
a WebClient
jsou zastaralé a neměli byste je používat pro nový vývoj. Místo toho použijte HttpClient.
Aktuální zásady mezipaměti a přítomnost požadovaného prostředku v mezipaměti určují, jestli se z mezipaměti dá načíst odpověď. Použití odpovědí uložených v mezipaměti obvykle zlepšuje výkon aplikace, ale existuje riziko, že odpověď v mezipaměti neodpovídá odpovědi na serveru.
Výchozí zásady mezipaměti je možné zadat v konfiguračním souboru Machine.config nebo nastavením vlastnosti DefaultCachePolicy pro požadavky, které používají schéma URI protokolu HTTP (Hypertext Transfer Protocol) nebo protokolu HTTPS (Secure Hypertext Transfer Protocol).
Kopie prostředku se přidá do mezipaměti pouze v případě, že se načte stream odpovědí pro prostředek a načte se na konec datového proudu. Další žádost o stejný prostředek by proto mohla použít kopii uloženou v mezipaměti v závislosti na úrovni zásad mezipaměti pro tento požadavek.