gpt4 book ai didi

c# - ASP.NET 5 中所有类型的 http header 都去了哪里?

转载 作者:可可西里 更新时间:2023-11-01 08:07:54 26 4
gpt4 key购买 nike

以前,在 WebApi(在 .NET 4.x 上)中,我们可以通过类型化接口(interface)处理请求和响应的 header (参见 HttpRequestMessage.Headers/HttpResponseMessage.Headers)。现在,在 ASP.NET 5 中,我们有 HttpRequestHttpResponse,其 Headers 属性类型为 IHeaderDictionary。但它只是一个无类型的字典。

下面我给出了一个示例,其中类型化访问可以返回经过微调的 http 响应。它需要创建一个 HttpResponseMessage 并填充它的 Headers 集合(顺便说一句,这是输入的)。

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语句,HttpRequestHttpResponse上有扩展方法到 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

关于c# - ASP.NET 5 中所有类型的 http header 都去了哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29706719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com