protected internal override CacheValidationStatus ValidateRequest() {
// cleanup context after previous request
ZeroPrivateVars();
string method = Request.Method.ToUpper(CultureInfo.InvariantCulture);
if(Logging.On)Logging.PrintInfo(Logging.RequestCache, SR.GetString(SR.net_log_cache_request_method, method));
switch (method) {
case "GET" : RequestMethod = HttpMethod.Get; break;
case "POST": RequestMethod = HttpMethod.Post; break;
case "HEAD": RequestMethod = HttpMethod.Head; break;
case "PUT" : RequestMethod = HttpMethod.Put; break;
case "DELETE": RequestMethod = HttpMethod.Delete; break;
case "OPTIONS": RequestMethod = HttpMethod.Options; break;
case "TRACE": RequestMethod = HttpMethod.Trace; break;
case "CONNECT": RequestMethod = HttpMethod.Connect; break;
default: RequestMethod = HttpMethod.Other; break;
}
// Apply our best knowledge of HTTP caching and return the result
// that can be hooked up and revised by the upper level
return Rfc2616.OnValidateRequest(this);
}