.net - .Net 标准/核心版本的 system.web.http.HttpError
问题描述
在将 .net Framework 迁移到 .net Standard/Core 时,我遇到了 HttpError 类。除了 Compatability Shim 之外,我在 .net core/standard 中找不到任何等效项,这只是一个临时解决方案。
不知道有没有官方的替代品?也许 API 发生了变化,并且有一个新的最佳实践可以用来代替 HttpError。
谢谢!
解决方案
HttpError 对象提供了一种在响应正文中返回错误信息的一致方式。在 asp.net Core Web API 中,您可以定义一个基本 ApiResponse 类,如:
public class ApiResponse
{
public int StatusCode { get; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Message { get; }
public ApiResponse(int statusCode, string message = null)
{
StatusCode = statusCode;
Message = message ?? GetDefaultMessageForStatusCode(statusCode);
}
private static string GetDefaultMessageForStatusCode(int statusCode)
{
switch (statusCode)
{
...
case 404:
return "Resource not found";
case 500:
return "An unhandled error occurred";
default:
return null;
}
}
}
您还可以派生该类来定义更具体的预定义错误类型,请参阅本文和本文了解更多详细信息和代码示例。
编辑 :
从版本 2.1 开始,它添加了对RFC 7807 的支持——HTTP API 的问题详细信息作为从 HTTP API 返回机器可读错误响应的标准化格式:
参考:https ://blogs.msdn.microsoft.com/webdev/2018/02/27/asp-net-core-2-1-web-apis/
推荐阅读
- wpf - 有时 ListView 中的图像会消失
- typescript - 从 TypeScript 4.1 中的参数计算其中一个键的返回类型
- python - 计算两个不同列中的单词并按行求和
- mongodb - 如何在项目聚合中删除一个文档
- php - 日志未显示在 codeigniter 3 的日志文件夹中
- javascript - 当我的机器人加入新服务器并离开到文本文件时记录
- c# - .NET Core Dapper:通过将组合主键上的多个表作为对象与对象列表连接来获取数据
- jsf - UIInput 和 UICommand 的自定义组件
- python - 如何使用 xpath (Scrapy) 从 dict 获取数据
- java - 在 BST 中找到最常见的元素