2014-01-29 34 views
0

我有一個PowerShell腳本,必須從Web服務器下載一個XML文件。 問題是,我不能使用WebClient.Downloadstring,因爲我首先必須導航到登錄表單並將我的憑據。使用PowerShell無WebClient下載XML

登錄通過java applet處理,所以如果我使用NetworkCredentials,它不起作用。

我發現它的唯一方法是創建一個InternetExplorer對象並導航到登錄URL,將憑據和模擬點擊提交按鈕。

然後導航到我想要的頁面並保存到文件。

它的工作原理,但下載的文件是非常大的,因爲它充滿了額外的跨度和div。

我希望有更好的方法來做到這一點。

+0

登錄可能會設置一個cookie,顯示它已驗證服務器。您可以像完成登錄過程那樣執行操作,然後從瀏覽器中提取cookie並在獲取文件時使用它。 – Duncan

回答

1

好吧,我找到了辦法。

我加了一個頭與authetication:

$client = new-object System.Net.WebClient 

$token = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($username+":"+$password)) 
$client.Headers.Add("Authorization", "Basic $token") 

$xml = $client.DownloadString("http://myurl")