我正在尝试编写一个简单的程序来从网站返回状态代码。当前使用HttpWebRequest和HttpWebResponse类。但是,它们的工作方式对我来说似乎很可怕,仅当状态码为200 / OK时,才会返回状态代码,而所有其他代码都给出了webexception。

虽然我可以读取异常的响应并获取状态代码,但我想知道是否还有其他替代方法不会导致异常。据我了解,例外的代价很高,应该将其保留在出现严重问题的极少数情况下。并不是说它对我的应用很重要,但是除非绝对必要,否则我宁愿避免例外。

那么还有其他选择吗?

编辑:

这是一些代码

HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create("http://www.randomsite.com");
            request.Method = "HEAD";
            try
            {
                HttpWebResponse response = (HttpWebResponse) request.GetResponse();
                Console.WriteLine("Status: " + response.StatusCode);

                response.Close();
            }
            catch (WebException ex)
            {
                HttpWebResponse httpResponse = (HttpWebResponse) ex.Response;
                if (httpResponse != null)
                {
                    Console.WriteLine("Status: " + httpResponse.StatusCode);
                }
            }

最佳答案

尽管异常的代价很高,但它们却比Web请求便宜十倍。因此,只需包装HttpWebResponse即可返回状态代码,而无需考虑成本。

10-04 18:51