10

私はこれに関するいくつかの決定的なドキュメントを探し回ったが、何も見つけることができなかった.

POST などを実行しHttpWebRequest.GetResponse()た後に生成されるHTTP 応答ステータス コードはどれですか?WebException

具体的には、WebExceptionステータス以外のものを生成します200 OKか? それともWebException、たとえば、400、404、および 500 (議論のために) のみを生成しますか?

HTTP 200 OK私が通信しているサーバーは、エラー状態として戻ってくる以外のことを定義しているので、知りたいです。WebException200 以外の生成を信頼できますか?

私は現在、毎回リターンステータスコードをチェックし、それが200 OK. WebExceptionそうでない場合は、適切なアクションが実行されますが、そのコードと、クリーンアップしたいと考えているa の catch ブロックの間には多くの重複があります。

ドキュメントへの関連リンクは、非常に高く評価されます。

4

3 に答える 3

2

応答後に明示的なチェックを行い、WebExceptions をキャッチしてチェックすることになりました。一部のコードが重複しますが、ステータスが 200 でない場合に WebException が常に発生するかどうかについての決定的な答えはありません。

于 2010-06-01T18:26:59.400 に答える
1

私はそうなると思いますが、それを行うのは危険な仮定のように思えます. 1 つには、MSDN のドキュメントGetResponseは、 が単にWebException. ただし、経験から、「304 Not-Modified」応答がWebException.

この話はすべて、気まぐれなコードの匂いを放っています。実行の流れを制御するために例外を使用しないでください。例外を適切に処理してから、StatusCodeプロパティの許容値を明示的にチェックすることをお勧めします。

于 2010-06-01T12:35:59.963 に答える
0

WebException システムは HTTPエラー システムとは別のシステムです。これは主に、ブラウザまたはクライアントによって HTTP エラーが返され、ページの作成中にサーバーによって WebException がスローされるためです。HTTP エラーが検出されるまでに、ページはクライアントに送信されますが、それについてはわかりません。

于 2010-06-01T12:03:09.263 に答える