加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 20:46:13 所属栏目:asp.Net 来源:网络整理
导读:以前,在WebApi(.NET 4.x)中,我们可以通过类型化的接口处理请求和响应的头部(参见HttpRequestMessage.Headers / HttpResponseMessage.Headers). 现在,在ASP.NET 5中,我们有HttpRequest和HttpResponse,Headers属性类型为IHeaderDictionary.但它只是一个无类型
以前,在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读