在 ASP.Net Core 2.0 中,我尝试返回带有状态代码的 json 或 xml 格式的消息。我从控制器返回自定义消息没有问题,但我不知道如何在中间件中处理它。
到目前为止,我的中间件类看起来像这样:
public class HeaderValidation
{
private readonly RequestDelegate _next;
public HeaderValidation(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext httpContext)
{
// How to return a json or xml formatted custom message with a http status code?
await _next.Invoke(httpContext);
}
}
中间件使用中填写响应httpContext.Response
返回的属性HttpResponse
此请求的对象。以下代码显示如何返回包含 JSON 内容的 500 响应:
public async Task Invoke(HttpContext httpContext)
{
if (<condition>)
{
context.Response.StatusCode = 500;
context.Response.ContentType = "application/json";
string jsonString = JsonConvert.SerializeObject(<your DTO class>);
await context.Response.WriteAsync(jsonString, Encoding.UTF8);
// to stop futher pipeline execution
return;
}
await _next.Invoke(httpContext);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)