1

(HttpWebResponse)request.GetResponse()メソッドは、ステータスコード400ではなくエラーページのステータスコード200を返します。

URLは

http://onlinehelp.microsoft.com/zh-cht/office365-smallbusinesses/hh911992.aspx

上記のURLをブラウザで開くと、「申し訳ありません。リクエストを処理できませんでした。」というメッセージが表示されたエラーページが表示されます。

ただし、webresponseから返されるステータスコードは200です。

私はそれのために書かれたコードを書きます

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(loclink);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
code = (int)response.StatusCode; 

このタイプのURLを追跡するのを手伝ってください。

4

3 に答える 3

1

正直なところ、気分が悪いです。私もそこに行ったことがありますが、同じように混乱していました。

いわゆる「ソフトエラーページ」です。これは、Web サーバーがエラーに遭遇したときに、実際のエラー ページを送信するのではなく、そのページにリダイレクトするためです。

于 2012-08-02T07:18:58.973 に答える
0

このサーバーはエラーページのステータスコードを強制しないようです。そのため、このページに特別な要素/単語が含まれていることを確認してみてください。

于 2012-08-02T07:14:24.010 に答える
0

私たちのサイトの 1 つでセキュリティ メトリックの問題を検証しようとしているときに、これに遭遇しました。

400 ではなく 200 応答が返される理由は、実際のエラー ページを表示するのではなく、エラーがサーバーによって適切に処理されているためです。サーバーはそれをキャッチし、わかりやすい「予期しないエラーが発生しました」ページにリダイレクトします。明らかに 200 応答が表示されます。

実際のエラー コードを取得するには、次の方法でTelnetでページをリクエストしてみてください。

GET /zh-cht/office365-smallbusinesses/hh911992.aspx

于 2012-08-02T07:52:50.713 に答える