如何从Visual Studio中查看ASP.NET Web API中的请求正文?

Oma*_*mar 22 visual-studio asp.net-web-api

如何从Visual Studio中查看ASP.NET Web API中的请求正文?在ASP.NET MVC中,您可以使用QuickWatch检查Request对象并查看正文的内容和任何已发布的表单数据.根据我的阅读,ASP.NET Web API不允许您多次读取正文.

当试图找出特定值未正确绑定的原因时,这非常烦人.有没有设置跟踪/日志记录的快速方法?

Dar*_*rov 33

最容易安装Fiddler.然后,您将看到通过网络发送的所有内容,不仅检查请求有效负载,还检查HTTP标头.如果您正在使用javascript中的API,FireBug,Chrome Developer Toolbar和IE Developer Tools等内容将向您显示网站提出的所有网络请求.

如果您绝对必须检查服务器上的流量,那么如果您在ASP.NET应用程序中托管Web API,则可以将以下行放在您的即时窗口中:

new StreamReader(HttpContext.Current.Request.InputStream).ReadToEnd()
Run Code Online (Sandbox Code Playgroud)

  • 或者你也可以做`request.Content.ReadAsStringAsync().结果`.这将缓冲请求内容,并且管道的其余部分仍将按预期工作,但如果您使用StreamReader将流读取到最后,则需要确保重置位置以使管道的其余部分正常工作.但是,正如你提到的"Fiddler"将是我的第一选择. (8认同)
  • ASP.NET Core:``new System.IO.StreamReader(Request.Body).ReadToEnd()``` 并重置读取位置,``Request.Body.Position = 0``` (3认同)