修改Http状态代码文本

问题描述 投票:0回答:3

问题

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

示例

例如:我想将

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.
c# asp.net http asp.net-web-api2 http-status-codes
3个回答
8
投票

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

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

它定义了带有状态代码的消息文本


2
投票

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

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

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

0
投票

如果您只返回状态代码和消息,您可以执行以下操作:

return this.Ok("My Custom Text");

return this.Unauthorized("Invalid Pin");

这将更改响应文本。

© www.soinside.com 2019 - 2024. All rights reserved.