gpt4 book ai didi

c# - 我可以在 ASP net core 中返回 504 HTTP 代码吗

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:25 25 4
gpt4 key购买 nike

目前我有一个 ExceptionFilterAttribute 来处理 controllers 上的异常。我的 API 连接到服务(通过专有 TCP/IP)。如果此服务不可访问,我想返回一个带有正确错误消息的 HTTP 504 响应代码。

我已经想出了如何发送 400

public override void OnException(ExceptionContext context)
{
if (!MyService.IsConnected)
{
context.Result = new BadRequestObjectResult(new ResultInformation() { ResultCode = 2000056, Message = "My service is not reachable" });

}
else
{
context.Result = new BadRequestObjectResult(new ResultInformation() { ResultCode = 0, Message = context.Exception.Message });
}
}

如何更改此代码以发送 504 和错误消息?

最佳答案

使用ObjectResult并手动设置状态码。

//... omitted for brevity

if (!MyService.IsConnected) {
var info = new ResultInformation() {
ResultCode = 2000056,
Message = "My service is not reachable"
};
context.Result = new ObjectResult(info) {
StatusCode = 504
};
}

//... omitted for brevity

大多数需要对象主体的标准状态结果类型实际上是从 ObjectResult 派生的,它们在其中设置了特定的状态代码。例如BadRequestObjectResult

如果您不需要实际返回响应主体,您可以使用 StatusCodeResult

context.Result = new StatusCodeResult(504);

关于c# - 我可以在 ASP net core 中返回 504 HTTP 代码吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54910965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com