asp.net-core – 使用[FromBody]时获取原始POST数据
发布时间:2020-12-16 04:18:20 所属栏目:asp.Net 来源:网络整理
导读:我有一个在ASP.NET Core 1.0 RC2上运行的控制器,我想将原始POST数据转储到遥测中,因为ApplicationInsights不会为您执行此操作.我的代码看起来像这样 [HttpPost][Produces("application/json")]public IActionResult Post([FromBody] RequestClass RequestDat
我有一个在ASP.NET Core 1.0 RC2上运行的控制器,我想将原始POST数据转储到遥测中,因为ApplicationInsights不会为您执行此操作.我的代码看起来像这样
[HttpPost] [Produces("application/json")] public IActionResult Post([FromBody] RequestClass RequestData) { var stream = this.HttpContext.Request.Body; stream.Position = 0; using (var reader = new StreamReader(stream)) { string body = reader.ReadToEnd(); Telemetry.TrackTrace(body,Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Information); } return Ok(); } 但字符串“body”总是空着.如果我从函数签名中删除[FromBody]装饰,那么此代码可以工作,但RequestData对象只包含null,这不是我想要的. 我唯一能想到的就是将RequestData转换回Json字符串,但这感觉很笨拙而且很慢. (编辑:POST数据是Json) 解决方法
您需要启用缓冲请求正文:
services.Configure< FormOptions>(options => options.BufferBody = true); https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http/Features/FormOptions.cs#L20 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – Web api界面在本地工作,但不在Azure上
- 如何将焦点放在ASP.NET MVC页面上的JQuery Dialog按钮之一?
- ASP.NET Web Form Project行动平台直立与横放自动缩放比例
- asp.net-mvc – 如何在Kendo UI菜单上的多个组之间插入分隔
- asp.net – 有没有办法隐藏架构或至少从Sql Server Managem
- asp.net – SignalR Autofac OWIN:为什么GlobalHost.Conne
- 使用ASP.NET MVC时从WebForm访问HtmlHelpers
- 使用ASP.Net MVC3中的jQuery动态填充下拉列表
- 用Scrutor来简化ASP.NET Core的DI注册
- ASP.Net自定义客??户端验证