.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