なぜWgetは、後続の前に2つのエラーメッセージを返すのですか?
質問
私は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
なぜWgetはURLにアクセスすると、正常に接続する前に二度失敗したと文句を言うのでしょうか?それを黙って、またはそれが最初の試みで適切に接続するために取得するそこに方法はありますか?
は、参考のために、ここで私はWGETを呼び出すために使用していますラインです。
wget --http-user=USERNAME --password=PASSWORD -O file.xml http://host.name.com/file.xml
解決
これは設計によるものと思われます。最初のNTLM試行がレベル3 NTLMのチャレンジ・レベルのみ1、だったので@Wayneコンラッドのアドバイスに続いて、私は、-dスイッチを追加し、NTLMが必要だったので、最初の試み、失敗を観察することができた、と第二の試みは失敗します応答が要求されました。 Wgetは最終的には3回目の試みで、必要な認証を提供しています。
Wgetは接続がファイル間で終了していなかった場合は、これを防ぐことになる、セッションの間に再認証を防ぐために、クッキーを取得ありません。私は事前にファイル名を知らないので、しかし、私はすることができません、発生する。このため、ファイルのリストをwgetの合格する必要があります。
他のヒント
あなたはwgetの新しいバージョンを持っているようです。最初のサーバーで挑戦しない限り1.10.2後、wgetコマンドは、認証を送信しません。最初のものは失敗している理由、それはあります。第二は、あなたが説明したものの原因を失敗してます。
あなたは--auth-NO-挑戦パラメータを追加することによって、それらのいずれかを減らすことができます。これは失敗します2つ目は、「ダイジェスト」モードで送信される「基本」の最初のを送り出します。これは動作するはずです。