Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WebResponse/HttpWebResponse的替代方案_C# - Fatal编程技术网

C# WebResponse/HttpWebResponse的替代方案

C# WebResponse/HttpWebResponse的替代方案,c#,C#,我正在尝试编写一个简单的程序,从网站返回状态码。当前正在使用HttpWebRequest和HttpWebResponse类。然而,它们的工作方式对我来说似乎很糟糕,状态代码只有在其为200/OK时才会返回,而所有其他代码都给出了webexception 虽然我可以从异常中读取响应并获取状态代码,但我想知道是否还有其他不会导致异常的替代方案。据我所知,例外情况代价高昂,应保留在出现严重问题的罕见情况下。这对我的申请并不重要,但我宁愿避免例外,除非绝对必要 那么还有其他选择吗 编辑: 这里有一些代码

我正在尝试编写一个简单的程序,从网站返回状态码。当前正在使用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,将状态代码返回给您,而不必考虑成本

我正在尝试编写一个简单的程序,从网站返回状态码

什么情况?是否只想确定应用程序是否正在运行
HttpWebResponse.StatusCode
返回响应的状态,而不是站点的状态。如果返回的不是200,则表示请求无效或由于某种原因无法处理


我同意Eugen的观点,在这种情况下,您不应该担心性能,但我感觉您也找错了方向。

您的代码在哪里?什么异常?
据我所知,异常代价很高,应该保留在出现严重问题的少数情况下。
您从哪里获得这种“理解”?@BrianDriscoll几乎所有讨论异常和成本的地方。我只是向网站url发出请求,获取响应并检查响应的状态码,看看网站是否正常、404、重定向或其他。我觉得这更清楚。对不起,我误解了。您的注释和添加的代码示例使您的意图更加清晰。如果我有一个不涉及
WebException
的替代方法,我将在另一个答案中发布它。