asp.net-core – 哪些所有类型的HTTP头都在ASP.NET 5中?

前端之家收集整理的这篇文章主要介绍了asp.net-core – 哪些所有类型的HTTP头都在ASP.NET 5中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以前,在WebApi(.NET 4.x)中,我们可以通过类型化的接口处理请求和响应的头部(参见HttpRequestMessage.Headers / HttpResponseMessage.Headers).
现在,在ASP.NET 5中,我们有HttpRequest和HttpResponse,Headers属性类型为IHeaderDictionary.但它只是一个无类型的字典.

下面我给出了一个类型访问的例子,可以返回一个微调的http响应.需要创建一个HttpResponseMessage并填充它的Headers集合(它是btw).

HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK);
response.Content = new StringContent(manifestContent);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/cache-manifest");
response.Headers.CacheControl = new CacheControlHeaderValue {NoCache = true,Public = true};
response.Headers.ETag = new EntityTagHeaderValue("\"" + etag + "\"");

解决方法

如果添加Microsoft.AspNetCore.Http的using语句,HttpRequest和HttpResponse对GetTypedHeaders有一些扩展方法,它应该提供你想要的类型安全性.

在示例中,我还添加了Microsoft.Net.Http.Headers的using语句,只是为了清理它.

var headers = Response.GetTypedHeaders();
headers.ContentType = new MediaTypeHeaderValue("text/cache-manifest");
headers.CacheControl = new CacheControlHeaderValue { NoCache = true,Public = true };
headers.ETag = new EntityTagHeaderValue("\"" + etag + "\"");

资料来源:aspnet/HttpAbstractions on Github

猜你在找的asp.Net相关文章