C# 异常情况下如何在HttpActionExecutedContext中读取JSON正文
我们使用的是WebAPI2,为了处理异常,我们通过继承ExceptionFilterAttribute创建了一个自定义属性。现在我们要将JSON请求的日志保存到数据库中,以防出现异常 我试图使用context.Request.Content.ReadAsStringAsync().Result读取,但返回空字符串C# 异常情况下如何在HttpActionExecutedContext中读取JSON正文,c#,asp.net-web-api2,httpcontext,C#,Asp.net Web Api2,Httpcontext,我们使用的是WebAPI2,为了处理异常,我们通过继承ExceptionFilterAttribute创建了一个自定义属性。现在我们要将JSON请求的日志保存到数据库中,以防出现异常 我试图使用context.Request.Content.ReadAsStringAsync().Result读取,但返回空字符串 请帮忙 您可以重置请求流位置并重新读取它: class CustomExceptionFilterAttribute : ExceptionFilterAttribute {
请帮忙 您可以重置请求流位置并重新读取它:
class CustomExceptionFilterAttribute : ExceptionFilterAttribute
{
public override async Task OnExceptionAsync(HttpActionExecutedContext context, CancellationToken cancellationToken)
{
var stream = await context.Request.Content.ReadAsStreamAsync();
stream.Position = 0;
using (var reader = new StreamReader(stream))
{
var requestString = reader.ReadToEnd();
}
}
}
感谢您回答我的问题并提供解决方案,但当我使用OneException方法时,为什么我无法阅读请求正文。请给出建议。因为请求流已经被框架解析和读取。您可以使用与我相同的技巧,从开始搜索流。