0

我正在从网站读取数据,如下所示:

webRequestObj = (HttpWebRequest)WebRequest.Create("http://localhost/503errorPage.php");
theResponse = webRequestObj.GetResponse();
theResponseStream = theResponse.GetResponseStream();
theStreamReader = new StreamReader(theResponseStream);
theWholePage = theStreamReader.ReadToEnd();

如果我进入一个有 503 错误的页面,该行:

theResponse = webRequestObj.GetResponse();

抛出一个 WebException:

The remote server returned an error: (503) Server Unavailable.

有没有办法检查网站是否返回 503 错误,而不是将所有内容都包装在 try/catch 块中并等待异常?我每秒做很多更新,如果可能的话,我想避免尝试/捕获。

4

1 回答 1

0

与建立网络连接所花费的时间相比,try/catch 的成本将是微不足道的。真的,如果你担心的是性能——别担心了:)

现在我会欣然承认,在更哲学的层面上,你不能做一个投机性的电话是很烦人的——有点TryGetResponse——但我不知道有什么方法可以做到这一点。其中一种异步方法可能会起作用,但这最终可能会改变相当多的代码。

顺便说一句,请确保您处理响应和流 - 如果您不处理响应,那么您可以与同一台服务器建立的连接数量将受到限制。

于 2010-07-15T18:17:05.310 回答