방법: 요청에 캐시 정책 설정
다음 예제에서는 요청에 대한 캐시 정책을 설정하는 방법을 보여 줍니다. 예제 입력은 http://www.contoso.com/
등의 URI입니다.
예시
다음 코드 예제에서는 리소스가 캐시에 포함된 기간이 하루를 초과하지 않으면 캐시에서 요청된 리소스를 사용하도록 허용하는 캐시 정책을 만듭니다. 예제에서는 리소스가 캐시에서 사용되었는지 여부를 나타내는 메시지(예: "The response was retrieved from the cache : False."
)를 표시하고 나서 리소스를 표시합니다. 클라이언트와 서버 간에 캐시를 통해 요청을 수행할 수 있습니다.
using System;
using System.Net;
using System.Net.Cache;
using System.IO;
namespace Examples.System.Net.Cache
{
public class CacheExample
{
public static void UseCacheForOneDay(Uri resource)
{
// Create a policy that allows items in the cache
// to be used if they have been cached one day or less.
HttpRequestCachePolicy requestPolicy =
new HttpRequestCachePolicy (HttpCacheAgeControl.MaxAge,
TimeSpan.FromDays(1));
WebRequest request = WebRequest.Create (resource);
// Set the policy for this request only.
request.CachePolicy = requestPolicy;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
// Determine whether the response was retrieved from the cache.
Console.WriteLine ("The response was retrieved from the cache : {0}.",
response.IsFromCache);
Stream s = response.GetResponseStream ();
StreamReader reader = new StreamReader (s);
// Display the requested resource.
Console.WriteLine(reader.ReadToEnd());
reader.Close ();
s.Close();
response.Close();
}
public static void Main(string[] args)
{
if (args == null || args.Length != 1)
{
Console.WriteLine ("You must specify the URI to retrieve.");
return;
}
UseCacheForOneDay (new Uri(args[0]));
}
}
}
Imports System
Imports System.Net
Imports System.Net.Cache
Imports System.IO
Namespace Examples.System.Net.Cache
Public Class CacheExample
Public Shared Sub UseCacheForOneDay(ByVal resource As Uri)
' Create a policy that allows items in the cache
' to be used if they have been cached one day or less.
Dim requestPolicy As New HttpRequestCachePolicy _
(HttpCacheAgeControl.MaxAge, TimeSpan.FromDays(1))
Dim request As WebRequest = WebRequest.Create(resource)
' Set the policy for this request only.
request.CachePolicy = requestPolicy
Dim response As HttpWebResponse = _
CType(request.GetResponse(), HttpWebResponse)
' Determine whether the response was retrieved from the cache.
Console.WriteLine("The response was retrieved from the cache : {0}.", _
response.IsFromCache)
Dim s As Stream = response.GetResponseStream()
Dim reader As New StreamReader(s)
' Display the requested resource.
Console.WriteLine(reader.ReadToEnd())
reader.Close()
s.Close()
response.Close()
End Sub
Public Shared Sub Main(ByVal args() As String)
If args Is Nothing OrElse args.Length <> 1 Then
Console.WriteLine("You must specify the URI to retrieve.")
Return
End If
UseCacheForOneDay(New Uri(args(0)))
End Sub
End Class
End Namespace
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET