WebRequest.CachePolicy Proprietà

Definizione

Ottiene o imposta i criteri di cache per questa richiesta.

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

Valore della proprietà

Oggetto RequestCachePolicy che definisce un criterio di cache.

Esempio

Nell'esempio di codice seguente viene illustrata l'impostazione dei criteri di cache per una richiesta Web.

// 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;
}

Commenti

Cautela

WebRequest, HttpWebRequest, ServicePointe WebClient sono obsoleti e non è consigliabile usarli per nuovi sviluppi. Usare invece HttpClient.

I criteri di cache correnti e la presenza della risorsa richiesta nella cache determinano se una risposta può essere recuperata dalla cache. L'uso delle risposte memorizzate nella cache in genere migliora le prestazioni dell'applicazione, ma esiste un rischio che la risposta nella cache non corrisponda alla risposta nel server.

I criteri di cache predefiniti possono essere specificati nel file di configurazione Machine.config oppure impostando la proprietà DefaultCachePolicy per le richieste che usano lo schema URI HTTPS (Hypertext Transfer Protocol) o Secure Hypertext Transfer Protocol (HTTPS).

Una copia di una risorsa viene aggiunta alla cache solo se il flusso di risposta per la risorsa viene recuperato e letto alla fine del flusso. Un'altra richiesta per la stessa risorsa potrebbe quindi usare una copia memorizzata nella cache, a seconda del livello di criteri della cache per questa richiesta.

Si applica a

Vedi anche