I migrate from ASP.NET Core 2.2 to 3.0 and now have a problem. If I write code like this:
[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);
}
I will receive an empty message in console, but if I remove parameter
[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);
}
, I receive message from body
curl -X POST \ http://localhost:5000/test \ -H 'Content-Type: application/json' \ -d '{ "test":123 }'