2013-09-26 2 views
4

Мне было интересно, был ли более простой способ (лучший способ) проверить код состояния 500?HttpStatusCode - любой тип 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 типов:

  • BadGateway
  • GatewayTimeout
  • HttpVersionNotSupported
  • InternalServerError
  • NotImplemented
  • ServiceUnavailable

Спасибо заранее, DS.

+5

можно проверить числовой диапазон 500..599 – Thilo

+0

Ба не понимают, что они были литьевой: $ –

ответ

7

статусе кодов, начиная с 5xx это ошибка сервера, поэтому простой метод будет

if ((int)response.StatusCode>=500 && (int)response.StatusCode<600) 
     throw new HttpRequestException("Server error"); 
+1

бонус : 'bool success = ((int) response.StatusCode)> = 200 && ((int) response.StatusCode) <300;' – Alain

+0

Во избежание использования магического номера: '(int) response.StatusCode> = (int) System.Net.HttpStatusCode.InternalServerError' –

Смежные вопросы