如何将Expires响应标头添加到WebAPI Action响应中?

问题描述:

我很确定“过期”是有效的HTTP响应头类型。但是,当我试图把它在我的代码(这是一个ActionFilter.OnActionExecuted法)如何将Expires响应标头添加到WebAPI Action响应中?

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

我结束了一个例外:

出现InvalidOperationException:误用头名。确保请求 标头与HttpRequestMessage一起使用,带有 HttpResponseMessage的响应标头以及带有HttpContent对象的内容标头。

Expires是一个内容标题。试试这个:

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

什么是HTTP内容头?我从来没有见过它,它看起来与我的服务器响应中的所有其他标头一样。...... – 2013-03-06 22:38:52

+3

它是一样的。但它只是一个与内容主体相关的标题。所以内容控制这些标题。 – 2013-03-06 22:48:25

+0

@YoussefMoussaoui当我尝试这个时,我得到'Expires:-1'。 – Azimuth 2017-08-24 12:39:05

尝试

response.Content.Headers.Expires = DateTimeOffset.Now.AddDays(7);