asp.net-web-api - 如何在 ASP.NET Core Web API 中发送带有错误 http 响应的正文?
问题描述
我正在将 ASP.NET Web API 项目转换为 ASP.NET Core WEB API。之前,我们会像这样返回错误响应:
throw new HttpResponseException(ErrorResponses.CreateErrorResponse(HttpStatusCode.Conflict, "Too many linked devices", new { status = (int)SignInStatus.TooManyLinkedDevices }));
请注意我们如何设置 http 状态代码、错误消息和响应正文。在核心中,我可以这样做:
return Conflict("Too many linked devices");
但是,我没有看到设置响应正文的方法。实现这一目标的正确技术是什么?
解决方案
我不确定“旧”代码中的每个参数到底对应什么,但只有一个响应主体,因此从逻辑上讲,不可能同时返回“链接设备太多”字符串和对象。字符串或对象实际上并未在响应正文中返回。
也就是说,您的响应主体Conflict
是您当前传递给它的参数。这可以是一个对象(字符串是一个对象)或一个ModelStateDictionary
(即ModelState
)。您可能需要执行以下操作:
return Conflict(new {
message = "Too many linked devices",
status = (int)SignInStatus.TooManyLinkedDevices
})
推荐阅读
- https - Indy HTTP / HTTPS 服务器是否在 Windows 服务应用程序中工作?
- python - R sapply 在 Python 中的 for 循环等效项
- java - 导入后 Keycloak Realm 中的用户丢失
- kubernetes - 使用自定义 pod 选项在 Kubernetes 中启动交互式 bash 提示
- python - Selenium:选择带有子类别的多个下拉菜单
- python - 我的 python 脚本的 Exe 无法运行,因为它无法识别模块 PIL
- django - django rest framework api在db中保存多个数据并使用嵌套的序列化器
- aop - 如何在 Spring AOP 中访问 RequestContextHolder 之前或之后的异步通知
- android - 在使用 Android MediaMuxer 时显示进度。如何获得总文件(内容)大小?
- scala - src文件和目标文件有什么区别