如何在 C# 中正确检查 HttpResponseMessage 的 http 状态代码?

Posted

技术标签:

【中文标题】如何在 C# 中正确检查 HttpResponseMessage 的 http 状态代码?【英文标题】:How to properly check http status code for HttpResponseMessage in C#? 【发布时间】:2019-11-03 20:16:32 【问题描述】:

完整的 C# 新手报告

假设我有以下代码

HttpResponseMessage response = ...

如何检查response 的状态码是否为 403?

StatusCode 属性是一个对象 - 而不是整数,所以我不太确定该怎么做。

【问题讨论】:

StatusCode 属性是 enum。定义值:docs.microsoft.com/en-us/dotnet/api/system.net.httpstatuscode 【参考方案1】:

您可以使用HttpStatusCode 枚举或将枚举转换为整数:

if (response.StatusCode == HttpStatusCode.Forbidden)

   ...


or

if ((int)response.StatusCode == 403)

   ...

【讨论】:

@AlanSTACK 我想补充一点,第一种是首选方式:说出能够自我记录其含义的名称与幻数。 403 到底是什么意思?在这里它的意思是“禁止”——那么为什么不把它写出来呢。 同意 100%! @ckuri

以上是关于如何在 C# 中正确检查 HttpResponseMessage 的 http 状态代码?的主要内容,如果未能解决你的问题,请参考以下文章

读取 HttpResponse

如何检查我的 C# 应用程序是不是使用来自 nuget 包的正确平台特定 dll?

文件存在,如果语句检查,如果文件不存在,则不会返回正确的输出,C#

C#中如何检查文本框的输入信息是不是为数字?

回发后执行 Javascript,并在 C# 中清除响应

在c#私有方法中正确测试接口[重复]