2

在使用浏览器测试我们的网站时,我故意输入了错误的用户名/密码,并从应用程序返回一个 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”。无法使用 wget 获取您看到的 HTML 代码,因为它不是 HTTP 对话的一部分。

于 2012-12-13T01:12:21.537 回答
0

wget用于在非 200 响应代码上停止并且不检索回复的正文。它已更新以纠正此行为,版本 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 回答