【问题标题】:Web Api - Catch 405 Method Not AllowedWeb Api - 不允许使用 Catch 405 方法
【发布时间】:2014-08-21 08:29:57
【问题描述】:

截至目前,Web api 应用程序返回以下响应正文 405 - Method Not Allowed 错误。我正在尝试更改响应正文,但我不知道如何使用委托处理程序、ApiControllerActionSelector 或过滤器。谁能帮我解决服务器端的 405 错误?

{ message: "The requested resource does not support http method 'GET'." }

注意:我的 api 控制器具有 [RoutePrefix] 值。

【问题讨论】:

    标签: api web http-status-code-405


    【解决方案1】:

    您可以使用DelegatingHandler 来捕获传出响应并像这样覆盖其行为。

    public class MethodNotAllowedDelegatingHandler : DelegatingHandler
    {
        async protected override Task<HttpResponseMessage> SendAsync(
                HttpRequestMessage request, CancellationToken cancellationToken)
        {
            HttpResponseMessage response = await base.SendAsync(request, cancellationToken);
            if (response.StatusCode == HttpStatusCode.MethodNotAllowed)
            {
                // adjust your response here as needed...
            }
            return response;
        }
    }
    

    在 Global.asax...

    config.MessageHandlers.Add(new MethodNotAllowedDelegatingHandler());
    

    【讨论】:

      猜你喜欢
      • 2013-03-21
      • 1970-01-01
      • 2014-06-11
      • 2016-04-18
      • 2018-02-04
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      相关资源
      最近更新 更多