• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

处理405错误

asp.net 来源:Ayman 10次浏览

我正试图处理405Method not Allowed)从WebApi产生的错误。处理405错误

例如:基本上这个错误将被处理,只要有人用Post请求而不是Get来调用我的Api。

我想以编程方式进行此操作(即没有IIS配置),现在没有处理这种错误的文档,并且在发生此异常时不会触发IExceptionHandler

任何想法?


===========解决方案如下:

部分响应: 通过查看here中的HTTP消息生命周期,可以在HttpRoutingDispatcher之前的管道的早期添加消息处理程序。

因此,创建一个处理程序类:

public class NotAllowedMessageHandler : DelegatingHandler 
{ 
    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) 
    { 
     var response = await base.SendAsync(request, cancellationToken); 

     if (!response.IsSuccessStatusCode) 
     { 
      switch (response.StatusCode) 
      { 
       case HttpStatusCode.MethodNotAllowed: 
       { 
        return new HttpResponseMessage(HttpStatusCode.MethodNotAllowed) 
        { 
         Content = new StringContent("Custom Error Message") 
        }; 
       } 
      } 
     } 

     return response; 
    } 
} 

在你WebApiConfig,注册方法中添加以下行:

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

您可以检查响应的状态代码和生成自定义基于它的错误消息。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)