如何在EmbeddIO中返回HttpException上的自定义内容



我有一个EmbeddIO API,想要返回一个HttpException,例如";401-未经授权";。如果登录时找不到用户名,我会在API端点方法中抛出一个HttpException,如下所示:

// return 401
throw HttpException.Unauthorized(message="user name does not exist", data=myData);

但EmbeddIO似乎忽略了这些数据,我认为这些数据会包含在我的响应内容中。但相反,我得到了一个";标准";响应,由只使用我的消息并说:的服务器生成

401-未经授权

401-未经授权

异常类型:EmbeddIO.HttpException

消息:用户名没有exist


如果此错误完全出乎您的意料,并且您我想你不应该看到这个页面,请联系服务器管理员,通知他们此错误发生的时间以及您执行的导致此错误的操作。

有人知道如何返回通过";数据";参数例如

{"用户名":"testUser";,"userNameExist":"假";,"尝试":5.}

您可以使用HandleHttpException方法定义响应:

var server = new WebServer(8877);
server.HandleHttpException(async (context, exception) =>
{
context.Response.StatusCode = exception.StatusCode;
switch (exception.StatusCode)
{
case 401:
await context.SendDataAsync(new { userName = "testUser", userNameExist = false, attempt = 5 });
break;
default:
await HttpExceptionHandler.Default(context, exception);
break;
}
});`

看这里:https://unosquare.github.io/embedio/wiki/Cookbook.html#setting-a定制错误页面

最新更新