在 ASP.NET core 中,似乎有两种类型可用于指定 HTTP 状态代码:
这些类型之间有什么区别,以及我应该在哪些用例中使用每种类型?
using System.Net;
using Microsoft.AspNetCore.Http;
public class MyClass
{
public string GetStatusCodeMessage()
{
int statusCode_1 = StatusCodes.Status409Conflict
int statusCode_2 = (int)HttpStatusCode.Conflict
// Which variant should I use?
return $"There is a {statusCode_1} here."
}
}
HttpStatusCode
枚举位于system.Net
命名空间内,这意味着您可以在任何地方使用它,特别是当您需要从API读取信息时。
StatusCodes
类位于
Microsoft.AspNetCore.Http
命名空间
下一个正在使用中,
StatusCodes
类为您提供了int
代码,但是在HttpStatusCode
中您必须转换它们
使用它们来定位代码
无法将此添加为评论,因为我没有代表,但我在
System.Net.HttpStatusCode
网络应用程序中使用 Asp.Net Core 6
来检查 HttpResponse.StatusCode
。
System.Net
默认存在,而 Microsoft.AspNetCore.Http
需要添加为依赖项。
因此,如果您还有其他依赖于它的服务(例如:
System.Net
),请使用IPEndPoint
。无需安装单独的软件包。
您可以在这里找到更多信息
TLDR:这都是由于
Asp.Net Core
混乱的生态系统