0

HttpWebRequestサーバーへの呼び出しを行うために使用しています。try-catchこれらの呼び出しは、ブロックで処理される例外を作成することがあります。しかし、例外の応答は常に null であり、例外のステータス コードを取得できません。

try
{
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUrl);

  using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
  {
    StreamReader reader = new StreamReader(response.GetResponseStream());
  }
}
catch (WebException e)
{
  //e.Response is always null!
}

WebException応答を得る方法はありますか?たとえば、間違った URL を送信すると、「基になる接続が閉じられました: 接続が予期せず閉じられました。WebException 」というメッセージが返されます。Fiddler では、プラスのテキスト メッセージが表示されます。Fiddler が間違った WebRequest からステータス コードの結果を取得できるのであれば、なぜ C# は取得できないのでしょうか? 方法があるに違いないことはわかっていますが、その方法は何ですか?504 Status Code

ステータスコードを取得する方法を知っている人はいますか? またはWebException応答?

4

1 に答える 1

0

「基になる接続が閉じられました: 接続が予期せず閉じられました。」のようなエラーの場合、サーバーはデータを送り返しませんでしたコンテンツを返さずに接続を閉じただけです。

Fiddler はプロキシとしてこの状態を検出し、サーバーが応答しなかったことを示すエラーを生成して返します。プロキシはこれを行い、プロキシではなくサーバーで障害が発生したことをクライアントが認識できるようにします。

于 2013-10-28T15:58:53.453 に答える