是否有添加HttpResponseHeader的内容头类型?
我在HttpResponseHeaders中看到的唯一方法是Add类型为字符串类型的字符串类型。 我只是想知道.NET是否提供了字符串中的HttpResponseHeader类型contants的列表?是否有添加HttpResponseHeader的内容头类型?
所以我可以做:
HttpResponseMessage response = Request.CreateResponse.........;
response.Headers.Add(xxxxx.ContentRange, "something");
我可以看到有枚举的HttpResponseHeader列表,但它不提供conrespondingly字符串值...
即HttpResponseHeader.ContentRange,但正确的标题字符串应该是内容的范围
纠正我,如果我错了......
有三个强类型的HTTP标头班在System.Net.Http.Headers命名空间:
HttpContentHeaders(可通过0123访问任何System.Net.Http.HttpContent类型)属性对于内容类型,的Content-Length,内容编码等预先定义的属性...(这似乎是头你之后)。
您可以将它们像这样:
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上下文去
希望这将帮助
方式的HttpResponseHeaders.Add只接受(字符串,字符串)和(字符串,IEnumerable的
@KingChan:编辑我的答案为webapi/mvc上下文 – jbl 2013-03-12 09:05:03
C#有一个内置的从Enum到字符串的转换。考虑到这些任务:
int val = 5;
HttpResponseHeader header = HttpResponseHeader.Allow
现在,val.ToString()
将返回字符串"5"
,但header.ToString()
将返回"Allow"
。所以,我谦恭地建议使用
response.Headers.Add(HttpResponseHeader.ContentRange.ToString(), "something");
enum ContentRange to string也将是“ContentRange”,但正确的标题是“Content-Range”,这就是我所说的在问题中。 – 2013-03-11 17:36:03
嗯。无论如何,标题的格式是否正确? (在[Fiddler](http://www.fiddler2.com/fiddler2/) – 2013-03-11 17:39:22
之类的东西中查看请求)看起来好像有一些特殊的注意事项来处理Range和Content-Range的头文件[这里有一些阅读材料](http: //www.piotrwalat.net/file-download-service-with-resume-support-using-asp-net-web-api/) – 2013-03-11 18:12:15
使用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();
哇,我怎么能错过这个......谢谢! – 2013-03-12 20:00:41