为什么WGET在成功之前会返回2条错误消息?

Din*_*dal 5 shell wget

我正在使用脚本通过WGET下拉身份验证所需URL上的一些XML数据。

为此,我的脚本会为访问的每个URL生成以下输出(更改IP和主机名以保护犯罪):

> Resolving host.name.com... 127.0.0.1
> Connecting to host.name.com|127.0.0.1|:80... connected.
> HTTP request sent, awaiting response... 401 Access denied
> Connecting to host.name.com|127.0.0.1|:80... connected.
> HTTP request sent, awaiting response... 401 Unauthorized
> Reusing existing connection to host.name.com:80.
> HTTP request sent, awaiting response... 200 OK
Run Code Online (Sandbox Code Playgroud)

为什么WGET在成功连接之前会抱怨访问URL两次失败?有没有办法将其关闭,或者在第一次尝试中使其正确连接?

作为参考,这是我用来调用WGET的行:

wget --http-user=USERNAME --password=PASSWORD -O file.xml http://host.name.com/file.xml
Run Code Online (Sandbox Code Playgroud)

Din*_*dal 5

这似乎是设计使然。遵循@Wayne Conrad的建议,我添加了-d开关,并且能够观察到第一次尝试失败是因为需要NTLM,第二次尝试失败了,因为第一次NTLM尝试仅是级别1,其中级别3是NTLM挑战-需要回应。WGET最后在第三次尝试时提供所需的身份验证。

WGET确实获得了一个cookie,以防止在会话期间进行重新身份验证,如果在文件之间未终止连接,这将阻止此操作。我需要通过WGET文件列表才能发生这种情况,但是我无法这样做,因为我事先不知道文件名。