【问题标题】:.Net standard/core version of system.web.http.HttpError.Net 标准/核心版本 system.web.http.HttpError
【发布时间】:2018-12-10 09:43:05
【问题描述】:

从 .net Framework 迁移到 .net Standard/Core 时 我遇到了 HttpError 类。 除了 Compatability Shim 这只是一个临时解决方案,我在 .net core/standard 中找不到任何等效项。

你知道它是否有官方替代品吗?也许 API 发生了变化,并且可以使用新的最佳实践来代替 HttpError。

谢谢!

【问题讨论】:

    标签: .net asp.net-core .net-core migration


    【解决方案1】:

    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;
            }
        }
    }
    

    你也可以派生这个类来定义更具体的预定义错误类型,更多细节和代码示例请参考thisthis文章。

    编辑:

    从 2.1 版开始,它增加了对 RFC 7807 – Problem Details for HTTP APIs 的支持,作为从 HTTP API 返回机器可读错误响应的标准化格式:

    参考:https://blogs.msdn.microsoft.com/webdev/2018/02/27/asp-net-core-2-1-web-apis/

    【讨论】:

    猜你喜欢
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多