当前位置: 首页 > 编程笔记 >

asp.net-core 使用ExceptionHandler中间件向客户端发送自定义JSON错误

葛和志
2023-03-14
本文向大家介绍asp.net-core 使用ExceptionHandler中间件向客户端发送自定义JSON错误,包括了asp.net-core 使用ExceptionHandler中间件向客户端发送自定义JSON错误的使用技巧和注意事项,需要的朋友参考一下

示例

定义将代表您的自定义错误的类。

public class ErrorDto
{
   public int Code { get; set; }
   public string Message { get; set; }

   // 其他领域

   public override string ToString()
   {
      return JsonConvert.SerializeObject(this);
   }
}

然后将下一个ExceptionHandler中间件放入Configure方法。注意中间件的顺序很重要。

app.UseExceptionHandler(errorApp =>
    {
        errorApp.Run(async context =>
        {
            context.Response.StatusCode = 500; // 或其他状态 
            context.Response.ContentType = "application/json";

            var error = context.Features.Get<IExceptionHandlerFeature>();
            if (error != null)
            {
                var ex = error.Error;

                await context.Response.WriteAsync(new ErrorDto()
                {
                    Code = <your custom code based on Exception Type>,
                    Message =ex.Message// 或您的自定义消息
                    
                    ... // 其他自定义数据
                }.ToString(), Encoding.UTF8);
            }
        });
    });
           

 类似资料:
  • 我有一个ASP.NET Core1.0Web API应用程序,并试图弄清楚如果我的控制器调用的函数出错,如何将异常消息传递给客户端。 我确实看到了一些使用的文档,但是为了使用它,我必须安装compat shim。在Core1.0中有没有一种新的方法来做这些事情? 这是我一直在尝试的垫片,但它不起作用: 当抛出时,我查看客户端,在内容中找不到我正在发送的消息。

  • 使用worker来做服务器,没有用GatewayWorker,如何实现向指定用户推送消息? <?php use WorkermanWorker; require_once __DIR__ . '/Workerman/Autoloader.php'; // 初始化一个worker容器,监听1234端口 $worker = new Worker('websocket://workerman.net:1

  • 我使用Spring的STOMP over WebSocket实现与一个全功能的ActiveMQ代理。当用户向主题订阅时,在成功订阅之前必须通过一些权限逻辑。我使用ChannelInterceptor应用权限逻辑,如下所示: WebSocketConfig。爪哇: WebSocketSecurityConfig.java: MySubscriptionInterceptor。爪哇: 当没有足够权限的

  • 问题内容: 我从socket.io + node.js开始,我知道如何在本地发送消息和广播功能:-所有连接的客户端都收到相同的消息。 现在,我想知道如何向特定的客户端发送私人消息,我的意思是一个套接字,用于2个人之间的私人聊天(客户端到客户端流)。谢谢。 问题答案: 当用户连接时,它应使用唯一的用户名(例如电子邮件)向服务器发送消息。 一对用户名和套接字应存储在这样的对象中: 在客户端上,使用以下

  • 我试图发送一个X.509客户端证书与输出请求zuul转发代理。证书包含在密钥存储库中,我正在加载SSLContext上的。 代码如下: 当我做一个测试请求,我得到和在详细的日志中,我看到消息。如何使http客户端将证书作为X.509客户端证书发送?

  • 我需要一个推送消息服务器的方案。 现在我选择AutobahnJs+AutobahnPython方案。 AutobahnJs库使用html5的websocket连接AutobahnPython使用的服务器 在javascript中,使用订阅通道,每个客户端使用相同的订阅通道。clientD将消息发布到通道(与订阅通道相同),服务器将消息传递给订阅该通道的所有客户端。 这里有一个问题,我需要应用程序(