2013-03-06 35 views
13

Tôi khá chắc chắn rằng "Hết hạn" là loại Tiêu đề phản hồi HTTP hợp lệ. Nhưng khi tôi cố gắng thiết lập nó trong mã của tôi: (đây là một phương pháp ActionFilter.OnActionExecuted)Cách thêm tiêu đề hồi đáp Hết hạn vào phản hồi Hành động WebAPI?

actionExecutedContext.Response.Headers.Add("Expires", (DateTime.Now + Timespan.FromDays(7)).ToString("R")); 

tôi kết thúc với một ngoại lệ:

InvalidOperationException: Tên tiêu đề lạm dụng. Đảm bảo yêu cầu tiêu đề được sử dụng với HttpRequestMessage, tiêu đề phản hồi với HttpResponseMessage và tiêu đề nội dung có các đối tượng HttpContent.

Trả lời

22

Hết hạn là tiêu đề nội dung. Hãy thử điều này thay vì:

actionExecutedContext.Response.Content.Headers.Expires = DateTimeOffset.Now.AddDays(7); 
+0

một nội dung tiêu đề HTTP là gì ?? Tôi chưa bao giờ thấy nó trước đây, và nó trông giống như tất cả các tiêu đề khác trong phản hồi của máy chủ của tôi .... –

+3

Nó là như nhau. Nhưng nó chỉ là một tiêu đề có liên quan đến nội dung nội dung. Vì vậy, Nội dung kiểm soát các tiêu đề đó. –

+0

@YoussefMoussaoui Tôi nhận được 'Hết hạn: -1' trở lại khi tôi thử điều này. – Azimuth

0

thử

response.Content.Headers.Expires = DateTimeOffset.Now.AddDays(7); 
Các vấn đề liên quan