2017-04-20 298 views
-1

我試圖從遠程URL下載XML文件而沒有成功。我可以在網絡瀏覽器中看到它的內容,但無法通過命令行下載(我可以從網絡瀏覽器手動下載)。我正在使用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

如果我輸入wget -d https://example.com/test來查看默認的HTTP請求頭,我會得到:「已加載的證書:174」。如果我用google替換上面提到的URL,我會得到正確的HTTP請求頭。 – Blackcoat77

0

嘗試設置一個頭

wget -q -O --header="Accept:text/xml,*/*" test.xml https://example.com/test