我如何 return .NET Webhook 处理程序中的 4xx 或 5xx 错误响应?

How do I return a 4xx or 5xx error response in a .NET Webhook Handler?

我目前正在使用 Microsoft.AspNet.WebHooks 实现 WebHookHandler。我的钩子 运行 很好,但我需要能够 return 5xx 或 4xx 错误响应。

示例仅在 ExecuteAsync 方法中显示 return:

        return Task.FromResult(true);

我在我的异常处理程序中尝试 returning false,但发送方仍然将错误视为确认并收到 200 OK。我希望发件人收到错误代码。

使用传递给 ExecuteAsync 方法的 WebHookHandlerContext 参数的 Response 属性 显式设置 HttpResponseMessage

这是您可以做到的方法:

public override Task ExecuteAsync(string receiver, WebHookHandlerContext webHookContext)
        {
            //Throw exception is a way
            //throw new Exception("Exception will be returned if uncomment this section");
            var response = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.OK);
            response.Content = new System.Net.Http.StringContent("Custom response");
            webHookContext.Response = response;
            return Task.FromResult(true);
}