質問

これらのリクエストが適切にブロックされていることを確認するために、サーバーにいくつかのリクエストを行う必要があるアプリケーションがあります。言い換えれば、 期待される サーバーの回答は403禁止されています。

このようなコードを使用して:

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(protectedPage);
httpRequest.Method = WebRequestMethods.Http.Head;
WebResponse response = HttpRequest.GetResponse();

a WebException 最後の行に投げられます。

コードをプロファイリングするとき、Try/Catchブロックのこの例外には、避けたいパフォーマンスの影響があります。

例外をキャッチすることなく、403を期待してサーバーの応答をチェックする方法はありますか(ただし、ソケットを直接使用することは避けます)?

役に立ちましたか?

解決

残念ながら、これはです 厄介な例外 フレームワークでは、それを避ける方法はありません(まだ使用している間 HttpWebRequest クラス)。しかし、Highが指摘したように、この例外処理にはナノ秒がかかりますが、Webリクエスト自体には(せいぜい)ミリ秒がかかるため、心配しないでください。

WebException オブジェクトには Response 応答を含むプロパティ。例外を処理する場合、それを処分することが重要です WebResponse オブジェクト(接続の漏れを避けるため)。

他のヒント

プロファイリングで時間を取っているのは、おそらく例外をキャッチする部分ではなく、Webサイトからの実際の応答です。

WebException.statusプロパティは、HTTP応答のステータスコードを提供し、それに基づいてさらに処理することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top