using System;
using System.Net;
using System.Net.Cache;

class WebCacheTest
{
    static void Main(String[] args)
    {
        // 以WebRequest抽象類別的Create方法建立WebRequest物件
        System.Net.WebRequest request = WebRequest.Create(new Uri(args[0]));
        // 設定快取原則（Cache Policy）
        // 若有符合用戶端請求之Cache資源，則使用此Cache滿足用戶端之請求
        // 否則將用戶端請求傳送至伺服端
        request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.CacheIfAvailable);
        // 使用WebRequest類別的GetResponse方法建立WebResponse物件
        System.Net.WebResponse response = request.GetResponse();
        // WebResponse類別之屬性
        // 用戶端所接收資料內容的大小（byte）
        String result = "ContentLength: " + response.ContentLength.ToString() + "\r\n";
        // 用戶端所接收資料內容的MIME格式
        result = result + "ContentType: " + response.ContentType.ToString() + "\r\n";
        // 用戶端所接收的URI
        result = result + "ResponseUri: " + response.ResponseUri.ToString() + "\r\n";
        // 用戶端所接收之回應內容是否從快取中取得
        result = result + "伺服端回應是否取自Cache? " + response.IsFromCache;
        // 關閉回應串流
        response.Close();
        Console.WriteLine(result);
    }
}


