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...

Original source