Compartilhar via


RequestCacheLevel Enumeração

Definição

Especifica o comportamento de cache para recursos obtidos usando WebRequest e suas classes derivadas.

public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel = 
Public Enum RequestCacheLevel
Herança
RequestCacheLevel

Campos

BypassCache 1

Atende a uma solicitação usando o servidor. Nenhuma entrada é retirada, adicionada ou removida dos caches entre o cliente e o servidor. Esse é o comportamento de cache padrão especificado no arquivo de configuração do computador fornecido com o .NET Framework.

CacheIfAvailable 3

Atende a uma solicitação para um recurso do cache se o recurso estiver disponível; caso contrário, enviará uma solicitação para um recurso ao servidor. Se o item solicitado estiver disponível em qualquer cache entre o cliente e o servidor, a solicitação poderá ser atendida pelo cache intermediário.

CacheOnly 2

Atende a uma solicitação usando o recurso armazenado localmente em cache; não envia uma solicitação para um item que não está no cache. Ao se especificar esse nível de política de cache, uma exceção WebException será lançada se o item não estiver no cache do cliente.

Default 0

Atende a uma solicitação para um recurso usando a cópia em cache do recurso ou enviando uma solicitação para o recurso ao servidor. A ação adotada é determinada pela política de cache em vigor e o tempo decorrido do conteúdo no cache. Esse é o nível de cache que deve ser usado pela maioria dos aplicativos.

NoCacheNoStore 6

Nunca atende a uma solicitação usando os recursos do cache e não armazena os recursos em cache. Se o recurso estiver presente no cache local, ele será removido. Esse nível de política indica aos caches intermediários que eles devem remover o recurso. No protocolo de cache HTTP, isso é feito usando a diretiva de controle de cache no-cache.

Reload 5

Atende a uma solicitação usando o servidor. A resposta pode ser salva no cache. No protocolo de cache HTTP, isso é feito usando a diretiva de controle de cache no-cache e o cabeçalho Pragma sem cache.

Revalidate 4

Atende a uma solicitação usando a cópia do recurso armazenada em cache se o carimbo de data/hora for igual ao do recurso no servidor; caso contrário, o recurso será baixado do servidor, apresentado ao chamador e armazenado no cache.

Exemplos

O exemplo de código a seguir cria uma política que retorna um recurso somente se ele estiver no cache.

static WebResponse^ GetResponseFromCache( Uri^ uri )
{
   RequestCachePolicy^ policy = gcnew RequestCachePolicy( RequestCacheLevel::CacheOnly );
   WebRequest^ request = WebRequest::Create( uri );
   request->CachePolicy = policy;
   WebResponse^ response = request->GetResponse();
   Console::WriteLine( L"Policy level is {0}.", policy->Level );
   Console::WriteLine( L"Is the response from the cache? {0}", response->IsFromCache );
   return response;
}
public static WebResponse GetResponseFromCache(Uri uri)
{
     RequestCachePolicy policy =
        new  RequestCachePolicy( RequestCacheLevel.CacheOnly);
    WebRequest request = WebRequest.Create(uri);
    request.CachePolicy = policy;
    WebResponse response = request.GetResponse();
    Console.WriteLine("Policy level is {0}.", policy.Level.ToString());
    Console.WriteLine("Is the response from the cache? {0}", response.IsFromCache);
    return response;
}

Comentários

Os membros dessa enumeração são usados para inicializar RequestCachePolicy objetos. A configuração atual de um RequestCachePolicy objeto está disponível na HttpRequestCachePolicy.Level propriedade .

Esse BypassCache valor é o comportamento de cache padrão especificado no arquivo de configuração do computador fornecido com o .NET Framework. Nenhuma entrada é retirada, adicionada ou removida dos caches entre o cliente e o servidor.

A HttpWebRequest.DefaultCachePolicy propriedade é usada para obter ou definir a política de cache padrão para HttpWebRequest instâncias. A WebRequest.CachePolicy propriedade é usada para obter ou definir a política de cache padrão para uma WebRequest instância. A WebRequest.CachePolicy propriedade é usada para obter ou definir a política de cache para uma solicitação específica.

Se o comportamento do cache for CacheIfAvailable ou Revalidate, uma cópia de um recurso solicitado só será adicionada ao cache se o fluxo de resposta do recurso for recuperado e lido até o final do fluxo. Com CacheIfAvailable, as solicitações subsequentes para o mesmo recurso usariam uma cópia armazenada em cache. Com Revalidate, as solicitações subsequentes para o mesmo recurso usariam uma cópia armazenada em cache se o carimbo de data/hora do recurso armazenado em cache fosse o mesmo que o carimbo de data/hora do recurso no servidor.

Uma cópia de um recurso só será adicionada ao cache se o fluxo de resposta do recurso for recuperado e lido até o final do fluxo. Portanto, outra solicitação para o mesmo recurso pode usar uma cópia armazenada em cache, dependendo do nível de política de cache padrão para essa solicitação.

Aplica-se a

Confira também