试试 ((HttpContextBase)actionContext.Request.Properties["MS_HttpContext"]).Request.InputStream
看看这个好像更好:
http://blog.csdn.net/yuanzhugen/article/details/47448453
不用取.写在action方法的参数列表里就行.
https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
这种我知道,我现在要在一个公共的filter里写log,想记录每次请求进来的业务参数,有没有什么好的方法
@balahoho:不可以.webapi的正文只能读取一次.你过滤器里读了.action里就没参数了.
@吴瑞祥: 可是,过滤器里也读不到啊~
@balahoho: 解决方案是用owin模式下的owinrequest上下文.可以重复操作.你以这个为关键字搜一下吧.
之前有遇到这种问题.后来决定不这么干了.
http://www.luckyonecn.com/blog/fix_content-type_to_Applicationjson_in_WebApi/ 看看这篇文章
不是要返回json,是要接收json格式的参数,看一下我回复楼上的
但凡这种都必定从 Context 中取到
几乎把context里的东西找遍了也没发现啊,x-www-form-urlencoded类型的参数倒是可以在request.form中拿到,但是json类型的就不行~
在一个公共的filter里通过HttpActionContext.ActionArguments获取action方法的参数,然后写到log
这种我知道,有没有比较通用的办法比如在httpcontext里面能拿到的,因为我的需求不仅仅是在filter种