WebRequest.CachePolicy Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece la directiva de caché para esta solicitud.
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
Valor de propiedad
Objeto RequestCachePolicy que define una directiva de caché.
Ejemplos
En el ejemplo de código siguiente se muestra cómo establecer la directiva de caché para una solicitud 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;
}
Comentarios
Cautela
WebRequest
, HttpWebRequest
, ServicePoint
y WebClient
están obsoletos y no debe usarlos para el nuevo desarrollo. Use HttpClient en su lugar.
La directiva de caché actual y la presencia del recurso solicitado en la memoria caché determinan si se puede recuperar una respuesta de la memoria caché. El uso de respuestas almacenadas en caché suele mejorar el rendimiento de la aplicación, pero existe un riesgo de que la respuesta en la memoria caché no coincida con la respuesta en el servidor.
La directiva de caché predeterminada se puede especificar en el archivo de configuración de Machine.config o estableciendo la propiedad DefaultCachePolicy para las solicitudes que usan el protocolo de transferencia de hipertexto (HTTP) o el esquema URI del Protocolo de transferencia de hipertexto seguro (HTTPS).
Una copia de un recurso solo se agrega a la memoria caché si se recupera y lee el flujo de respuesta del recurso al final de la secuencia. Por lo tanto, otra solicitud para el mismo recurso podría usar una copia almacenada en caché, en función del nivel de directiva de caché de esta solicitud.