Is there a content Header Type for adding HttpResponseHeader?
.net, c#, http-response-codes
Solution
There are three strongly-typed HTTP header classes in the System.Net.Http.Headers namespace:
- HttpContentHeaders
- HttpRequestHeaders
- HttpResponseHeaders
HttpContentHeaders (which is accessible via the `Headers` property of any of the System.Net.Http.HttpContent types) has pre-defined properties for Content-Type, Content-Length, Content-Encoding etc... (which seem to be the headers you were after).
You can set them like this:
var content = new StringContent("foo");
content.Headers.Expires = DateTime.Now.AddHours(4);
content.Headers.ContentType.MediaType = "text/plain";
...and the header names will be set correctly.
Problem
The only method I see in HttpResponseHeaders is Add which takes string type for header type. I just wonder did .NET provided a list of HttpResponseHeader type contants in string? So I can do: ``` HttpResponseMessage response = Request.CreateResponse.........; response.Headers.Add(xxxxx.ContentRange, "something"); ``` I can see there is a list of Enum in HttpResponseHeader, but it doesn't provide string value conrespondingly... i.e HttpResponseHeader.ContentRange, but the correct header string should be Content-Range Correct me if I am wrong...