Как мне установить код состояния с помощью специального сообщения в asp.net core 2.1? - PullRequest
3 голосов
/ 18 апреля 2019

Я работаю на ядре asp.net версии 2.1, я создал пример проекта API, который работает нормально, но я не могу изменить код состояния с помощью специального сообщения, например:

В Почтальоне:

200 OK

Ожидается:

200 Custom_Message

Код, который я пробовал:

[HttpGet]
public IActionResult Get()
{
     Response.StatusCode = 200;
     Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = "Custom_Message";
     return Ok();
}

Текущий выход почтальона:

enter image description here

GitHub Repository

1 Ответ

0 голосов
/ 18 апреля 2019

Я думаю, вы должны создать свой собственный класс:

public class CustomResult : OkResult
{
    private readonly string Reason;

    public CustomResult(string reason) : base()
    {
        Reason = reason;
    }

    public override void ExecuteResult(ActionContext context)
    {
        if (context == null)
        {
            throw new ArgumentNullException(nameof(context));
        }

        context.HttpContext.Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = Reason;
        context.HttpContext.Response.StatusCode = StatusCode;
    }
}

Тогда в вашем методе контроллера:

[HttpGet]
public IActionResult Get()
{
     return new CustomResult("Custom reason phrase");
}

выход

enter image description here

...