是否有一个内容报头类型用于添加HttpResponseHeader

本文关键字:用于 添加 HttpResponseHeader 类型 报头 有一个 是否 | 更新日期: 2023-09-27 18:03:17

我在HttpResponseHeaders中看到的唯一方法是Add,它需要头类型的字符串类型。我只是想知道。net是否在字符串中提供了HttpResponseHeader类型内容的列表?

我可以这样写:

HttpResponseMessage response = Request.CreateResponse.........;
response.Headers.Add(xxxxx.ContentRange, "something");

我可以看到在HttpResponseHeader中有一个枚举列表,但它不提供相应的字符串值…

。e HttpResponseHeader。内容范围,但正确的头字符串应该是Content-Range

是否有一个内容报头类型用于添加HttpResponseHeader

System.Net.Http.Headers命名空间中有三个强类型HTTP头类:

  • HttpContentHeaders
  • HttpRequestHeaders
  • HttpResponseHeaders

httpcontenttheaders(可以通过System.Net.Http.HttpContent类型的Headers属性访问)有预定义的属性Content-TypeContent-LengthContent-Encoding等等。(这似乎是你所追求的标题)。

你可以这样设置它们:

var content = new StringContent("foo");
content.Headers.Expires = DateTime.Now.AddHours(4);
content.Headers.ContentType.MediaType = "text/plain";

…并且标题名称将被正确设置。

也许你可以试试这样做。

var whc = new System.Net.WebHeaderCollection();
whc.Add(System.Net.HttpResponseHeader.ContentRange, "myvalue");
Response.Headers.Add(whc);
在webapi上下文中,最后一行可以是:
HttpContext.Current.Response.Headers.Add(whc);

无论如何,@ServiceGuy的答案是在webapi/mvc上下文中的方法

希望对大家有所帮助

您可以通过WebRequest和WebResponse的属性获取和设置通用头信息,如HttpWebRequest.ContentType.

c#有从Enum到string的内置转换。考虑这些任务:

int val = 5;
HttpResponseHeader header = HttpResponseHeader.Allow 

现在,val.ToString()将返回字符串"5",但header.ToString()将返回"Allow"。所以我建议使用

response.Headers.Add(HttpResponseHeader.ContentRange.ToString(), "something");

使用ContentType属性:https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.contenttype.aspx。

我能够在我的WCF服务实现中做到这一点,通过执行以下操作:

// Get the outgoing response portion of the current context
var response = WebOperationContext.Current.OutgoingResponse;
// Add ContentType header that specifies we are using JSON
response.ContentType = new MediaTypeHeaderValue("application/json").ToString();