403禁止された応答のWebExceptionを回避する方法は?
-
08-10-2019 - |
質問
これらのリクエストが適切にブロックされていることを確認するために、サーバーにいくつかのリクエストを行う必要があるアプリケーションがあります。言い換えれば、 期待される サーバーの回答は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応答のステータスコードを提供し、それに基づいてさらに処理することができます。
所属していません StackOverflow