Коды ответа HTTP C#

Вот код внизу

        List<int> j = new List<int>();
        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(result.SiteURL);
        webRequest.AllowAutoRedirect = false;
        HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
        j.Add((int)response.StatusCode);  

Что я хочу сделать, это получить все коды ответов, разделить их (например, 2xx,3xx 4xx-5xx) и поместить их в разные списки. Потому что мне нужны их числа, например, сколько ответов 4xx или 200 ответов. Или есть другой способ сделать это?

result.SiteURL URL для ответов. Проблема в том, что последняя строка кода не возвращает и ничего не получает. Что мне здесь не хватает?

редактировать: основная проблема в том, что все, что я пытаюсь, я получаю только 1 код ответа, и это в основном 200: ОК Но для youtube.com(ect) должно быть 74 OK(200) ответов, 1 No Content(204) ответа и 2 Moves Permanently(301) ответов в соответствии с https://tools.pingdom.com/. Как я собираюсь получить их?

1 ответ

Решение

Вы неправильно понимаете результат, показанный Pingdom.

Pingdom запрашивает веб-страницу так же, как браузер: он загружает саму страницу, а также все ссылки на ресурсы по странице: таблицы стилей, сценарии, изображения и т. Д.

Ваш код загружает только основную HTML-страницу, которая имеет большую доступность и всегда возвращает 200 OK.

Если вы хотите воспроизвести результаты pingdom, вам нужно проанализировать HTML-страницу и загрузить ресурсы страницы. Имейте в виду, что разбор HTML является нетривиальной задачей (производители браузеров прилагают немало усилий), поэтому вы можете подумать, стоит ли это вашего времени.

Другие вопросы по тегам