2

ブラウザーを使用して Web サイトをテストする際に、意図的に間違ったユーザー名/パスワードを入力すると、アプリケーションから HTML ページが返され、ログインに失敗したこと、および「ユーザー名とパスワードを確認してから再試行してください」と通知されます。このページのソースを表示すると、「401」がどこにも埋め込まれていません。

ただし、wget を使用して上記を模倣します。

wget http://servername:8011/ui/login.do --post-data="loginId=NotAUser&password=NotAPassword" -U Mozilla -o log.txt

出力ファイルには「401 Unauthorized」が含まれていますが、上記の html は含まれていません。

私が期待していた html ページを取得し、「$?」で 401 リターン コードを確認する方法はありますか? テスト?

4

2 に答える 2

1

取得している「401 Unauthorized」は、サーバーからの応答のヘッダーにあります。401 応答には HTML はありません。これは単なるエラー コードです。

ブラウザで記述したページは、サーバーから送り返されるのではなく、実際にはブラウザによって生成されます。ブラウザー ベンダーは、単に "401 Unauthorized" または "404 Page Not Found" をユーザーに表示するのではなく、意味のあるエラー ページを生成します。HTTP 会話の一部ではないため、表示されている HTML コードを wget を使用して取得する方法はありません。

于 2012-12-13T01:12:21.537 に答える
0

wget200 以外の応答コードで停止し、応答の本文を取得しないために使用されていました。この動作を修正するために更新されており、バージョン 1.14-1 以降は期待どおりに動作するはずです。

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=247985

古いバージョンで立ち往生している場合、またはそれを動作させることができない場合は、curl代わりに試してみませんか?

https://superuser.com/questions/253826/how-to-use-wget-to-download-http-error-pages

于 2012-12-13T01:48:28.137 に答える