如何在异常处理程序中获取请求JSON消息 - WebAPI?

时间:2018-02-21 05:06:29

标签: c# .net asp.net-web-api

我创建了webApi全局异常处理程序,我必须在prod环境中记录请求参数/ JSON以验证请求是否发生异常,请告诉我在

中记录请求消息的方法
ExceptionHandler

WebApiConfig

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Services.Replace(typeof (IExceptionHandler), 
            new GlobalExceptionHandler());
    }
}

GlobalExceptionHandler

public class GlobalExceptionHandler : ExceptionHandler
{
    public override void Handle(ExceptionHandlerContext context)
    {
     Logger.log("Exception : \t" + context.Exception.Message)
         Logger.log("Request JSON : \t" + Josn.Serializer(context.Request.Content));
    }
}

1 个答案:

答案 0 :(得分:1)

您可以尝试阅读以下内容。

对于POST/PUT/DELETE,以下代码将阅读内容。

     string jsonContent = "";
     System.Web.HttpContext.Current.Request.InputStream.Position = 0;
     using (var reader = new StreamReader(System.Web.HttpContext.Current.Request.InputStream, System.Text.Encoding.UTF8, true, 4096, true))
         {    
          jsonContent= reader.ReadToEnd().ToString();
         }

 //Reset back the position
     System.Web.HttpContext.Current.Request.InputStream.Position = 0;

对于GET请求,您可以直接记录URL