示例#1
0
 private void Handle(NancyContext context)
 {
     if (_cacheableSpecification.IsCacheable(context))
     {
         context.Response.Headers.EnableCache();
     }
     else
     {
         context.Response.Headers.DisableCache();
     }
 }
示例#2
0
        private Response Handle(NancyContext context)
        {
            if (_cacheableSpecification.IsCacheable(context) && context.Request.Headers.IfModifiedSince.HasValue)
            {
                var response = new Response {
                    ContentType = MimeTypes.GetMimeType(context.Request.Path), StatusCode = HttpStatusCode.NotModified
                };
                response.Headers.EnableCache();
                return(response);
            }

            return(null);
        }
        public async Task InvokeAsync(HttpContext context)
        {
            if (context.Request.Method != "OPTIONS")
            {
                if (_cacheableSpecification.IsCacheable(context.Request))
                {
                    context.Response.Headers.EnableCache();
                }
                else
                {
                    context.Response.Headers.DisableCache();
                }
            }

            await _next(context);
        }
示例#4
0
        private void Handle(NancyContext context)
        {
            if (context.Request.Method == "OPTIONS")
            {
                return;
            }

            if (_cacheableSpecification.IsCacheable(context))
            {
                context.Response.Headers.EnableCache();
            }
            else
            {
                context.Response.Headers.DisableCache();
            }
        }
示例#5
0
        public async Task InvokeAsync(HttpContext context)
        {
            if (_cacheableSpecification.IsCacheable(context) && context.Request.Headers["IfModifiedSince"].Any())
            {
                context.Response.StatusCode = 304;
                context.Response.Headers.EnableCache();

                if (!_mimeTypeProvider.TryGetContentType(context.Request.Path.ToString(), out var mimeType))
                {
                    mimeType = "application/octet-stream";
                }

                context.Response.ContentType = mimeType;

                return;
            }

            await _next(context);
        }