假设我有以下变量:
System.Net.HttpStatusCode status = System.Net.HttpStatusCode.OK;
我该如何检查这是一个成功状态码还是失败状态码?
例如,我可以执行以下操作:
int code = (int)status;
if(code >= 200 && code < 300) {
//Success
}
我也可以有某种白名单:
HttpStatusCode[] successStatus = new HttpStatusCode[] {
HttpStatusCode.OK,
HttpStatusCode.Created,
HttpStatusCode.Accepted,
HttpStatusCode.NonAuthoritativeInformation,
HttpStatusCode.NoContent,
HttpStatusCode.ResetContent,
HttpStatusCode.PartialContent
};
if(successStatus.Contains(status)) //LINQ
{
//Success
}
这些方案都没能说服我,我希望有一个 .NET 类或方法可以代替我完成这项工作,例如:
bool isSuccess = HttpUtilities.IsSuccess(status);
int code = (int)Response.StatusCode
,然后你需要创建自己的Enum
。这里有一个有效的示例,请参考 https://dev59.com/oHM_5IYBdhLWcg3wjj0p - MethodManHttpClient
类? - dcastroHttpResponseMessage
,例如。 - Matias CiceroHttpResponseMessage.IsSuccessStatusCode
的实现(请参见我的答案),它与您的第一种方法完全相同,并将其作为HttpStatusCode
类型的扩展方法。 - dcastro