如何从Visual Studio中查看ASP.NET Web API中的请求正文?在ASP.NET MVC中,您可以使用QuickWatch检查Request
对象并查看正文内容和任何已发布的表单数据。根据我的阅读,ASP.NET Web API不允许您多次读取正文。
在试图找出特定值未正确绑定的原因时,这非常烦人。如果没有设置跟踪/记录,有没有快速的方法呢?
答案 0 :(得分:33)
最容易安装Fiddler
。然后,您将看到通过网络发送的所有内容,不仅检查请求有效负载,还检查HTTP标头。如果您从javascript使用API,FireBug,Chrome开发者工具栏和IE开发者工具等内容将向您显示网站提出的所有网络请求。
如果您绝对必须检查服务器上的流量,那么如果您在ASP.NET应用程序中托管Web API,则可以将以下行放在您的即时窗口中:
new StreamReader(HttpContext.Current.Request.InputStream).ReadToEnd()
答案 1 :(得分:3)
如果您需要正文>>形状数据强>
发布localhost:53356 / api / carparksapi / GetRecod
key = jsonRequest and value = [{“abcd”:“zxxx”}]
// API -Controller Method ::
var httpContext = (HttpContextWrapper)Request.Properties["MS_HttpContext"];
var foo = httpContext.Request.Form["jsonRequest"];
return foo; //This is value passed in request
答案 2 :(得分:1)
对于ASP.NET Core,请在立即窗口中使用它:
new System.IO.StreamReader(Request.Body).ReadToEnd()
答案 3 :(得分:0)
对我来说@Matas Vaitkevicius回答了
错误CS1061:' HttpContextBase'不包含的定义 '电流'没有扩展方法' Current'接受第一个论点 类型' HttpContextBase'可以找到(你错过了使用 指令或程序集引用?)
用System.Web.HttpContext.Current替换HttpContext.Current为我做了
new System.IO.StreamReader(System.Web.HttpContext.Current.Request.InputStream).ReadToEnd()
希望这能节省你一些时间
答案 4 :(得分:0)
如果蒸汽位置在0位置,这些值中的任何一个都可以工作。
HttpContext.Current.Request.InputStream.Position = 0;
var body = new StreamReader(HttpContext.Current.Request.InputStream).ReadToEnd();