.net core 3.0 在过滤器读取request.body 里的请求,controller[FromBody]读取不到参数,解决办法


1,注入IHttpContextAccessor httpContex

2,var req = _httpContext.HttpContext.Request;

  //  这句很重要,开启读取 否者下面设置读取为0会失败

  req.EnableBuffering();


  using (var reader = new StreamReader(_httpContext.HttpContext.Request.Body, Encoding.UTF8, true, 1024, true))
  {
    var a = await reader.ReadToEndAsync();
    id = JsonConvert.DeserializeObject<View>(a).Id;
  }

  // 这里读取过body  Position是读取过几次  而此操作优于控制器先行 控制器只会读取Position为零次的

  req.Body.Position = 0;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM