我尝试使用wget从不同的子目录下载文件
wget -r -nd --no-parent -e robots=off --auth-no-challenge --user=myusr --ask-password https://myexdomain.com/dir/subdir/
它没有任何问题。
然而,当我将wget调用到一个目录级别时
wget -r -nd --no-parent -e robots=off --auth-no-challenge --user=myusr --ask-password https://myexdomain.com/dir/
wget返回400:BAD REQUEST
任何想法为什么?
答案 0 :(得分:1)
HTTP错误400非常通用,通常与客户端请求的格式有关。如果没有您提供有问题的实际网站供我们测试,那么它有点难以猜测。但是,这里有一些猜测:
它在普通的http上运行正常但在https上运行不正常吗?如果是,则可能与安全策略有关。
您是否使用检查数据包的防火墙,路由器或常驻防病毒软件?如果是这样,它可能正在改变数据包结构,使其无效。如果您使用的是更大的网络,那么您和主机之间是否有这样的设备(tracert会帮助您解决这个问题)。
您是否可以访问此主机服务器?如果是这样,您可以创建新目录并测试失败的确切条件吗?它总是位于根目录下的一个目录下吗?
您排除机器人,有时可能会很好,但也可以根据上下文触发服务器的不同响应。您是否在没有机器人排除的情况下进行了测试?
您是否尝试过其他用户代理?某些服务器对wget用户代理的响应不同。你能在网络浏览器中访问这些文件吗?使用卷曲?或者在wget命令中使用--user-agent指定的其他用户代理?
如果这些都不起作用,请告诉我们其他测试的结果。