修改Http状态代码文本

时间:2016-04-06 21:29:50

标签: c# asp.net http asp.net-web-api2 http-status-codes

问题

如何修改状态代码文本(说明/标题)?

示例

例如:我想将200 (Ok)更改为200 (My Custom Text)

应将描述

我想创建一个带有自定义状态代码(未预留)431的HTTP响应。我想修改它的文本:

  • 200 (OK)
  • 400 (Bad Request)
  • 431 (My message here)

我尝试过:

var response = new HttpResponseMessage() 
{
    StatusCode = (HttpStatusCode) 431,
};

response.Headers.Add("Status Code", "431 My custom text"); // This throws error.

2 个答案:

答案 0 :(得分:5)

只需在初始化程序中添加ReasonPhrase:

        var response = new HttpResponseMessage()
        {
            StatusCode = (HttpStatusCode)431,
            ReasonPhrase = "your text"
        };

它定义使用状态代码

发送的消息的文本

答案 1 :(得分:2)

解决此问题的一种方法是跳过您添加的标头的验证。这可以使用TryAddWithoutValidation方法完成。

var response = new HttpResponseMessage() 
{
    StatusCode = (HttpStatusCode) 431,
};

response.Headers.TryAddWithoutValidation ("Status Code", "431 My custom text");