2017-04-20 15 views
-1

リモートURLからXMLファイルをダウンロードしようとしています。私はその内容をWebブラウザで見ることができますが、コマンドラインからダウンロードすることはできません(Webブラウザから手動でダウンロードすることができます)。私はwgetを使用しています:XMLファイルをダウンロードできません

wget -q -O test.xml https://example.com/test 

私もcURLを成功させて使ってみました。

答えて

2

-qを削除し、あなたが表示されます:

--2017-04-20 14:25:53-- https://example.com/test 
Resolving example.com... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946 
Connecting to example.com|93.184.216.34|:443... connected. 
HTTP request sent, awaiting response... 404 Not Found 
2017-04-20 14:25:53 ERROR 404: Not Found. 

URLが404エラーページです。その結果、text.xmlは空です。その後

手動見れば:

だから、
--content-on-error 
     If this is set to on, wget will not skip the content when the 
     server responds with a http status code that indicates error. 

wget -q --content-on-error -O test.xml https://example.com/test 

...成功し、そのリソースをダウンロードします。

これは有効なXMLではありません。 HTML 5 Doctypeはそれを壊します。

+0

を設定してください、私は取得しています: "失敗しました:接続がタイムアウトしました再試行を。"。非常に奇妙な – Blackcoat77

+0

@ Blackcoat77 - それはあなたとexample.comの間のネットワークの問題を示唆しています。ブラウザで動作する場合はおそらく、プロキシサーバーの設定に関係するものでしょう。 – Quentin

+0

デフォルトのHTTPリクエストヘッダーを表示するためにwget -d https://example.com/testと入力すると、「証明書が読み込まれました:174」と表示されます。上記のURLをGoogleと置き換えると、適切なHTTPリクエストヘッダーが取得されます。 – Blackcoat77

0

は、ヘッダに

wget -q -O --header="Accept:text/xml,*/*" test.xml https://example.com/test 
関連する問題