10

我想知道是否有更简单的方法(更好的方法)来检查 500 状态代码?

我能想到这样做的唯一方法是:

var statusCodes = new List<HttpStatusCode>()
{
  HttpStatusCode.BadGateway,
  HttpStatusCode.GatewayTimeout,
  HttpStatusCode.HttpVersionNotSupported,
  HttpStatusCode.InternalServerError,
  HttpStatusCode.NotImplemented,
  HttpStatusCode.ServiceUnavailable
};
if (statusCodes.Contains(response.StatusCode))
{
  throw new HttpRequestException("Blah");
}

我注意到这些是 500 种类型:

  • 错误的网关
  • 网关超时
  • HttpVersionNotSupported
  • 内部服务器错误
  • 未实现
  • 暂停服务
4

1 回答 1

11

以 5xx 开头的状态码是服务器错误,所以简单的方法是

if ((int)response.StatusCode>=500 && (int)response.StatusCode<600)
      throw new HttpRequestException("Server error");
于 2013-09-26T09:05:36.927 回答