. net webapi GenericJsonWebHookHandler httpstatuscodes - PullRequest
0 голосов
/ 06 февраля 2020

Есть ли / можете ли вы порекомендовать способ управления кодом статуса ответа в. net контроллере webapi webhook? Я использую. net GenericJsonWebHookHandler (v1.2.2.0), поэтому я могу реализовать веб-зацепки с помощью ряда различных решений.

Мой простой метод получает данные и обрабатывает их нормально; и у меня есть серия ловушек. Я хочу добавить обработку ошибок в сервис; но не могу найти способ изменить ответ на запрос. Независимо от моих попыток; метод, вызываемый через почтальона, всегда возвращает код состояния 200

Попытался добавить context.Response.StatusCode = HttpStatusCode.BadRequest; в нижеприведенный улов; наряду с попыткой ответа contextErrorDetail context.RequestContext.IncludeErrorDetail = true;

Я нашел некоторую документацию, предполагающую, что строка ниже будет работать, но метод CreateErrorResponse, похоже, отсутствует в библиотеке.

context.Response = context.Request.CreateErrorResponse (HttpStatusCode.BadRequest, msg);

Шаблон моего обработчика приведен ниже; просто без каких-либо значимых логи c

    public class GenericJsonWebHookHandler : WebHookHandler
    {
        public GenericJsonWebHookHandler()
        {
            this.Receiver = "genericjson";
        }


        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {

            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }


            try

            {
                // Get JSON from WebHook
                string JSONPayload = context.Data.ToString();

    ...
      catch (Exception ex)
                {
                   -- Set Exception status code here
                }
...
            context.Response.StatusCode = HttpStatusCode.Found;



   return Task.FromResult(true);
}
...