title: Why is Request.BodyReader empty, when I add request parameters (ASP.NET Core 3.0)
body: <p>I migrate from ASP.NET Core 2.2 to 3.0 and now have a problem. If I write code like this:</p>
  
  <pre><code>[HttpPost("test")]
  public async Task Test(object o) {
      HttpContext.Request.EnableBuffering();
      var result = await HttpContext.Request.BodyReader.ReadAsync();
      var buffer = result.Buffer;
      Console.WriteLine(System.Text.Encoding.Default.GetString(buffer.FirstSpan));
      HttpContext.Request.BodyReader.AdvanceTo(buffer.End);
  }
  </code></pre>
  
  <p>I will receive an empty message in console, but if I remove parameter</p>
  
  <pre><code>[HttpPost("test")]
  public async Task Test() {
      HttpContext.Request.EnableBuffering();
      var result = await HttpContext.Request.BodyReader.ReadAsync();
      var buffer = result.Buffer;
      Console.WriteLine(System.Text.Encoding.Default.GetString(buffer.FirstSpan));
      HttpContext.Request.BodyReader.AdvanceTo(buffer.End);
  }
  </code></pre>
  
  <p>, I receive message from body</p>
  
  <blockquote>
    <p>curl -X POST \
      <a href="http://localhost:5000/test" rel="noreferrer">http://localhost:5000/test</a> \
      -H 'Content-Type: application/json' \
        -d '{
          "test":123
        }'</p>
  </blockquote>