Вы можете указать WebRequest использовать системный кеш, установив свойство CachePolicy.
Следующий код (взят из MSDN ) кэширует запросы на один день. Кэш хранится в папке временных файлов Интернета текущего пользователя (по крайней мере, в Windows XP).
// 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 ();
// do something with the response stream
s.Close();
response.Close();