我正在试着写一个简单的程序来从网站返回状态码。当前使用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);
}
}发布于 2012-01-19 23:06:55
虽然异常的代价很高,但它们比web请求的代价要低得多。因此,只需包装HttpWebResponse以返回状态码,并忘记成本。
发布于 2012-01-19 23:12:06
我正在试着写一个简单的程序来从网站返回状态码。
什么的状态?您是否只想知道应用程序是否正在运行?HttpWebResponse.StatusCode返回响应的状态,而不是站点的状态。如果返回200以外的任何值,则表示请求无效或由于某种原因无法处理。
我同意Eugen的观点,在这种情况下你不应该关心性能,但我有一种感觉,你也找错了人。
https://stackoverflow.com/questions/8928261
复制相似问题