百度到的基本上就是读取response.body的流。然后记录完了之后,把流的index重新复位,这样也太麻烦了。
其实asp.net core团队肯定已经考虑到了这种需求,比如记录请求响应日志。给响应数据过滤这类的。
在OnActionExecuted的ActionExecutedContext里面有个result。在调试模式下,就可以看到这个Result随着响应对象的不一致,是不同的对象
if (context.Result is JsonResult) { var value = ((JsonResult)context.Result).Value; } if (context.Result is ObjectResult) { var value = ((ObjectResult)context.Result).Value; }
可以直接获取自己需要的返回对象,然后做处理就ok了。