1 开启请求体缓存
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IOptions<SenparcSetting> senparcSetting,
IOptions<SenparcWeixinSetting> senparcWeixinSetting)
{
//---其他服务
//
app.Use((context, next) =>
{
context.Request.EnableBuffering(); // 启用请求体缓冲
return next();
});
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
2过滤器里设置代码
httpContext.Request.EnableBuffering();
//请求流里获取参数
StreamReader sr = new StreamReader(httpContext.Request.Body, Encoding.UTF8);
ServerKeyd = await sr.ReadToEndAsync();
//将请求体流的位置重置为流的开头。以免后面的controller无法再次读取
httpContext.Request.Body.Seek(0, SeekOrigin.Begin);