1. ホーム
  2. c#

[解決済み] ウェブクライアントからステータスコードを取得するには?

2023-02-01 11:27:10

質問

私は WebClient クラスを使用して、いくつかのデータをウェブフォームにポストしています。私は、フォーム送信の応答ステータスコードを取得したいと思います。今のところ、私は例外が発生した場合にステータスコードを取得する方法を見つけました。

Catch wex As WebException
        If TypeOf wex.Response Is HttpWebResponse Then
          msgbox(DirectCast(wex.Response, HttpWebResponse).StatusCode)
            End If

しかし、フォームが正常に送信され、例外が投げられなかった場合、ステータスコード(200,301,302,...)を知ることはありません。

例外が発生しない場合に、ステータスコードを取得する方法はありますか?

追記:httpwebrequest/httpwebresponseを使用しない方が良いのですが。

どのように解決するのですか?

試しにやってみました。ResponseHeadersにステータスコードが含まれていません。

間違っていなければ WebClient は単一のメソッド呼び出しで複数の異なるリクエストを抽象化することができます (たとえば、100 回の連続応答、リダイレクトなどを正しく処理します)。私が思うに HttpWebRequestHttpWebResponse の場合、明確なステータスコードは利用できないかもしれません。

中間ステータス コードに興味がない場合、最終的なステータス コードは 2xx (成功) の範囲であると安全に仮定することができ、そうでなければ、呼び出しは成功しないだろうと思い当たります。

ステータスコードは残念ながら ResponseHeaders 辞書にはありません。