HTTP响应代码C#

问题描述 投票:1回答:1

这是下面的代码

        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),根据https://tools.pingdom.com/#!/fMjhr/youtube.com,必须有74个OK(200)响应,1个No Content(204)响应和2个Moved Permanently(301)响应。我怎么得到它们?

c# asp.net webforms http-response-codes
1个回答
1
投票

你误解了pingdom显示的结果。

Pingdom就像浏览器一样请求一个网页:它加载页面本身,以及页面的所有资源引用:样式表,脚本,图像等。

您的代码仅加载主HTML页面,该页面具有良好的可用性并始终返回200 OK。

如果要重现pingdom的结果,则需要解析HTML页面并加载页面的资源。请记住,解析HTML是一项非常重要的任务(浏览器供应商在其中投入了大量精力),因此您可能需要重新考虑这是否值得花时间。

© www.soinside.com 2019 - 2024. All rights reserved.