.NET CORE 自定义错误返回报告

本文介绍了在ASP.NET Core中如何配置HTTP响应格式为JSON,设置错误数据400状态码为422 Unprocessable Entity,并详细展示了如何自定义错误处理,包括创建ValidationProblemDetails实例来提供详细的错误信息。此外,还展示了如何添加和配置XML数据格式支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  services.AddControllers(setupAction=> {
                //设置http请求返回的固定格式为json
                setupAction.ReturnHttpNotAcceptable = true;
                //配置了数据输出格式
                //setupAction.OutputFormatters.Add(
                //    new XmlDataContractSerializerOutputFormatter()
                //    );
                //配置xml的数据
            }).AddXmlDataContractSerializerFormatters()
            .ConfigureApiBehaviorOptions(setupAction =>//错误数据400改为422返回代码
            {
                setupAction.InvalidModelStateResponseFactory = context =>
                {
                    var problemDetail = new ValidationProblemDetails(context.ModelState)
                    {
                        Type = "无所谓",
                        Title = "数据验证失败",
                        Status = StatusCodes.Status422UnprocessableEntity,
                        Detail = "请看详细说明",
                        Instance = context.HttpContext.Request.Path
                    };
                    problemDetail.Extensions.Add("traceId", context.HttpContext.TraceIdentifier);
                    return new UnprocessableEntityObjectResult(problemDetail)
                    {
                        ContentTypes = { "application/problem+json" }
                    };
                };
            });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值