Я пытаюсь получить номер кода состояния HTTP из HttpWebResponse
объекта, возвращенного из HttpWebRequest
. Я надеялся получить реальные цифры (200, 301, 302, 404 и т. Д.), А не текстовое описание. («Ok», «MovedPermanently» и т. Д.) Число находится в свойстве где-то в объекте ответа? Любые идеи, кроме создания большой функции переключателя? Спасибо.
HttpWebRequest webRequest = (HttpWebRequest)WebRequest
.Create("http://www.gooogle.com/");
webRequest.AllowAutoRedirect = false;
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
//Returns "MovedPermanently", not 301 which is what I want.
Console.Write(response.StatusCode.ToString());
c#
.net
http
httpwebrequest
Джеймс Лаврук
источник
источник
Ответы:
HttpStatusCode (тип
response.StatusCode
) является перечислением, где значения членов соответствуют кодам состояния HTTP, напримеристочник
bool success = ((int)response.StatusCode) >= 200 && ((int)response.StatusCode) < 300;
Вы должны быть осторожны, ответы сервера в диапазоне 4xx и 5xx выдают исключение WebException. Вам нужно перехватить его, а затем получить код состояния из объекта WebException:
источник
В соответствии с 'dtb' вам нужно использовать HttpStatusCode, но после 'zeldi' вы должны быть очень осторожны с ответами кода> = 400.
Это сработало для меня:
источник
Просто приведи
StatusCode
кint
.источник
источник