【问题标题】:HTTP Response Codes C#HTTP 响应代码 C#
【发布时间】:2017-12-28 07:05:04
【问题描述】:

下面是代码

        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:OK。但是,对于 youtube.com(ect),根据https://tools.pingdom.com/#!/fMjhr/youtube.com,必须有 74 个 OK(200) 响应、1 个无内容 (204) 响应和 2 个已永久移动 (301) 响应。我将如何获得它们?

【问题讨论】:

标签: c# asp.net webforms http-response-codes


【解决方案1】:

你误解了 pingdom 显示的结果。

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

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

如果你想重现 pingdom 的结果,你需要解析 HTML 页面并加载页面的资源。请记住,解析 HTML 是一项艰巨的任务(浏览器供应商为此付出了很多努力),因此您可能需要重新考虑这是否值得您花时间。

【讨论】:

  • "如果你想重现 pingdom 的结果,你需要解析 HTML 页面并加载页面的资源。"我对编程有点陌生,那我该怎么做呢?你能帮帮我吗?
  • 这对于初学者来说并不是一个真正合适的任务。如果您仍然想这样做,请先精通 HTML,然后学习如何在 C# 中解析 HTML。
猜你喜欢
  • 2020-11-12
  • 1970-01-01
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 2014-10-10
相关资源
最近更新 更多