use*_*537 12 http wget unauthorized http-status-code-401
我正在尝试使用WGET批处理文件从这里下载公共FCC文件
http://wireless.fcc.gov/uls/data/complete/l_micro.zip
当我最初使用参数运行批处理文件时
wget --server-response -owget.log http://wireless.fcc.gov/uls/data/complete/l_micro.zip
Run Code Online (Sandbox Code Playgroud)
它因HTTP 401未授权错误而失败.我可以在这一点上重试并且它一直在失败.但是我注意到,如果我打开IE,开始下载并在提示保存时取消,我可以重新运行批处理文件,它可以完美执行!
这是我日志中的详细服务器响应
--2012-02-06 14:32:24-- http://wireless.fcc.gov/uls/data/complete/l_micro.zip
Resolving wireless.fcc.gov (wireless.fcc.gov)... 192.104.54.158
Connecting to wireless.fcc.gov (wireless.fcc.gov)|192.104.54.158|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 302 Found
Location: REMOVED - appears to have my IP
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Connection: close
Content-Length: 513
Location: REMOVED [following]
--2012-02-06 14:32:24-- REMOVED
Resolving REMOVED... 192.168.2.11
Connecting to REMOVED|192.168.2.11|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 401 Unauthorized
Cache-Control: no-cache
Pragma: no-cache
WWW-Authenticate: NTLM
WWW-Authenticate: BASIC realm="AD_BCAAA"
Content-Type: text/html; charset=utf-8
Proxy-Connection: close
Set-Cookie: BCSI-CS-8ECFB6B4AA642EF0=2; Path=/
Connection: close
Content-Length: 575
Authorization failed.
Run Code Online (Sandbox Code Playgroud)
这是执行我的小IE程序并使其工作后的日志
--2012-02-08 15:52:43-- http://wireless.fcc.gov/uls/data/complete/l_micro.zip
Resolving wireless.fcc.gov (wireless.fcc.gov)... 192.104.54.158
Connecting to wireless.fcc.gov (wireless.fcc.gov)|192.104.54.158|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Server: Sun-Java-System-Web-Server/7.0
Date: Fri, 27 Jan 2012 18:37:51 GMT
Content-type: application/zip
Last-modified: Sun, 22 Jan 2012 11:18:09 GMT
Etag: "46fa95c-4f1bf071"
Accept-ranges: bytes
Content-length: 74426716
Connection: Keep-Alive
Age: 1045014
Length: 74426716 (71M) [application/zip]
Saving to: `l_micro.zip'
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
Fed*_*rgi 30
如果网站只有htpassword设置,您可以尝试:
wget --user=admin --ask-password https://www.yourwebsite.com/file.zip
Run Code Online (Sandbox Code Playgroud)
您的网络上有一个Blue Coat安全Web网关,如响应中的行所示:
Set-Cookie: BCSI-CS-8ECFB6B4AA642EF0=2; Path=/
Run Code Online (Sandbox Code Playgroud)
看起来它希望您进行身份验证,可能是您的域凭据.尝试用--http-user和传递它们--http-passwd.
小智 6
我在基于 xwiki 的网站上遇到了类似的问题。经过几次尝试,我发现一些对我来说效果很好的组合
wget --no-check-certificate --auth-no-challenge -k -nc -p -l 1 -r https://user:password@host.domain
我认为关键是——auth-no-challenge
小智 0
尝试使用 wget 设置用户代理字符串 - 例如
--user-agent=Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Run Code Online (Sandbox Code Playgroud)
站点拒绝来自某些用户代理的请求是完全可行的,特别是当它们试图绕过“通常”的信息路由(即通过网页)时。
尽管这不能解释您的问题,但无论如何这是一个好主意。也许该网站实施了一种机制,当您使用“已知”浏览器(例如 IE)浏览时,它会将您的 IP 缓存为“安全”,然后允许来自您 IP 的任何用户代理下载任何内容:)