是否有一个内容报头类型用于添加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
System.Net.Http.Headers命名空间中有三个强类型HTTP头类:
- HttpContentHeaders
- HttpRequestHeaders
- HttpResponseHeaders
httpcontenttheaders(可以通过System.Net.Http.HttpContent类型的Headers
属性访问)有预定义的属性Content-Type, Content-Length, Content-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();