Sdílet prostřednictvím


RequestCacheLevel Výčet

Definice

Určuje chování ukládání do mezipaměti pro prostředky získané pomocí WebRequest a jejich odvozené třídy.

public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel = 
Public Enum RequestCacheLevel
Dědičnost
RequestCacheLevel

Pole

BypassCache 1

Vyhodí požadavek pomocí serveru. Mezi klientem a serverem se z mezipamětí nepřečtou žádné položky, nepřidávají se do mezipamětí ani se z mezipamětí neodeberou. Toto je výchozí chování mezipaměti zadané v konfiguračním souboru počítače, který se dodává s rozhraním .NET Framework.

CacheIfAvailable 3

Splňuje požadavek na prostředek z mezipaměti, pokud je prostředek k dispozici; v opačném případě odešle žádost o prostředek na server. Pokud je požadovaná položka k dispozici v jakékoli mezipaměti mezi klientem a serverem, může být požadavek splněn zprostředkující mezipamětí.

CacheOnly 2

Splňuje požadavek pomocí prostředku v místní mezipaměti; neodesílá požadavek na položku, která není v mezipaměti. Pokud je tato úroveň zásad mezipaměti zadána, dojde k výjimce WebException , pokud položka není v mezipaměti klienta.

Default 0

Splňuje požadavek na prostředek buď pomocí kopie prostředku uložené v mezipaměti, nebo odesláním požadavku na prostředek na server. Přijatá akce je určená aktuálními zásadami mezipaměti a stářím obsahu v mezipaměti. Toto je úroveň mezipaměti, kterou by měla používat většina aplikací.

NoCacheNoStore 6

Nikdy nesplní požadavek pomocí prostředků z mezipaměti a neukládá prostředky do mezipaměti. Pokud se prostředek nachází v místní mezipaměti, odebere se. Tato úroveň zásad indikuje zprostředkujícím mezipamětím, že by měly prostředek odebrat. V protokolu HTTP ukládání do mezipaměti se toho dosahuje pomocí direktivy no-cache řízení mezipaměti.

Reload 5

Vyhodí požadavek pomocí serveru. Odpověď může být uložena v mezipaměti. V protokolu HTTP ukládání do mezipaměti se toho dosahuje pomocí direktivy no-cache řízení mezipaměti a hlavičky bez mezipaměti Pragma .

Revalidate 4

Splňuje požadavek pomocí kopie prostředku uložené v mezipaměti, pokud je časové razítko stejné jako časové razítko prostředku na serveru; v opačném případě se prostředek stáhne ze serveru, předá volajícímu a uloží se do mezipaměti.

Příklady

Následující příklad kódu vytvoří zásadu, která vrací prostředek pouze v případě, že je v mezipaměti.

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

Poznámky

Členy tohoto výčtu se používají k inicializaci RequestCachePolicy objektů. Aktuální nastavení objektu RequestCachePolicy je k dispozici ve HttpRequestCachePolicy.Level vlastnosti .

Tato BypassCache hodnota je výchozí chování mezipaměti zadané v konfiguračním souboru počítače, který se dodává s rozhraním .NET Framework. Mezi klientem a serverem se z mezipamětí nepřečtou žádné položky, nepřidávají se do mezipamětí ani se z mezipamětí neodeberou.

Vlastnost HttpWebRequest.DefaultCachePolicy slouží k získání nebo nastavení výchozích zásad mezipaměti pro HttpWebRequest instance. Vlastnost WebRequest.CachePolicy slouží k získání nebo nastavení výchozích zásad mezipaměti pro WebRequest instance. Vlastnost WebRequest.CachePolicy slouží k získání nebo nastavení zásad mezipaměti pro konkrétní požadavek.

Pokud je CacheIfAvailableRevalidatechování mezipaměti nebo , přidá se kopie požadovaného prostředku do mezipaměti pouze v případě, že se datový proud odpovědi pro prostředek načte a přečte na konec datového proudu. V CacheIfAvailablepřípadě by následné požadavky na stejný prostředek používaly kopii v mezipaměti. V Revalidatepřípadě nástroje by následné požadavky na stejný prostředek používaly kopii uloženou v mezipaměti, pokud je časové razítko prostředku uloženého v mezipaměti stejné jako časové razítko prostředku na serveru.

Kopie prostředku se do mezipaměti přidá jenom v případě, že se datový proud odpovědi pro prostředek načte a přečte na konec datového proudu. V závislosti na výchozí úrovni zásad mezipaměti pro tento požadavek by tedy mohl použít další požadavek na stejný prostředek kopii v mezipaměti.

Platí pro

Viz také