You can instruct the WebRequest to use system cache by setting the CachePolicy property.
Following code (taken from MSDN) caches requests for one day. The cache is stored at the temporay internet files folder of the current user (at least on 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();