代码如下:
public static class HttpContextExtensions
{
/// <summary>
/// https://markb.uk/asp-net-core-read-raw-request-body-as-string.html
/// </summary>
/// <param name="request"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public static async Task<string> GetRawBodyAsync(
this HttpRequest request,
Encoding encoding = null)
{
if (!request.Body.CanSeek)
{
// We only do this if the stream isn't *already* seekable,
// as EnableBuffering will create a new stream instance
// each time it's called
request.EnableBuffering();
}
request.Body.Position = 0;
var reader = new StreamReader(request.Body, encoding ?? Encoding.UTF8);
var body = await reader.ReadToEndAsync().ConfigureAwait(false);
request.Body.Position = 0;
return body;
}
}
调用代码:
string bodystr3= await Request.GetRawBodyAsync();