wget仅返回(预期)“401未授权”但没有html

时间:2012-12-13 01:02:12

标签: wget

在使用浏览器测试我们的网站时,我输入了一个故意不正确的用户名/密码,并从应用程序中获取一个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返回代码测试

2 个答案:

答案 0 :(得分:1)

" 401 Unauthorized"你得到的是在服务器响应的标题中。 401响应没有HTML - 它只是一个错误代码。

您在浏览器中描述的页面实际上是由浏览器生成的,而不是从服务器发回的。浏览器供应商生成有意义的错误页面,而不仅仅是显示" 401 Unauthorized"或者" 404找不到页面"给用户。您无法使用wget获取HTML代码,因为它不属于HTTP对话。

答案 1 :(得分: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