aspnet core中间件 短路 Response.WriteAsync正确用法
在stack overflow上回答了一个问题,随便在这记录下。
在aspnetcore3.1的中间件,在短路时,如果需要自定响应的内容和code,需要注意的问题。
使用 Response.WriteAsync()和Response.StatusCode 定义的body和code时,如果不按套路出牌就会导致body不显示,正确的用法是,
public async Task InvokeAsync(HttpContext context, RequestDelegate next)
{
//Unauthorized
context.Response.Headers.Add("Content-Type", "application/json");
context.Response.StatusCode = StatusCodes.Status401Unauthorized;
await context.Response.WriteAsync(JsonConvert.SerializeObject(new
{
Msg = msg,
LoginPath = _options.LoginPath.Value,
}));
await context.Response.CompleteAsync();
}
见图(懒得打字了)
如果对你有用请点赞
hghii: 我的报错 返回null
团子_rice: 简直救了我的大命