0

次のようにWebサイトからデータを読み取っています。

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.

すべてを try/catch ブロックにラップして例外を待つ代わりに、ウェブサイトが 503 エラーを返すかどうかを確認する方法はありますか? 毎秒多くの更新を行っているため、可能であれば try/catch を避けたいと考えています。

4

1 に答える 1

0

試行/キャッチのコストは、ネットワーク接続にかかる時間と比較してごくわずかです。本当に、パフォーマンスがあなたが心配しているものであるなら-心配するのをやめてください:)

今、私はあなたが投機的な電話をかけることができないというより哲学的なレベルで迷惑であることを容易に認めます-一種のTryGetResponse-しかし私はそれをする方法を知りません。非同期アプローチの1つが機能する可能性はありますが、それは潜在的にかなり多くのコードを変更することになります。

ところで、応答とストリームを破棄するようにしてください。応答を破棄しないと、同じサーバーに接続できる接続数が制限されます。

于 2010-07-15T18:17:05.310 に答える