2012-03-26 2 views
1

Ich habe das Herunterladen einer Datei mit dem Webclient für Powershell gesehen. Das Problem besteht darin, dass die Anforderungs-URL mehrmals umgeleitet wird, bevor die tatsächliche Datei angezeigt wird. es ist eine ssrs-Web-Schnittstelle mit einer Abfrage-Zeichenfolge Meathod Download = bla.csvSo laden Sie eine Datei mit PowerShell vom Internet, wenn die URL umleitet

eine Idee, wie dies zu erreichen?

+0

sieht aus wie sie die Anfrage hinter einige Soap-Anfrage versteckt –

+0

Können Sie ein Beispiel geben? – JPBlanc

+0

Die Webanforderung gibt eine Webseite mit einem Formular zurück, das automatisch gesendet wird. Kann ich Powershell dieses Formular senden? –

Antwort

0

Ich denke, Sie können this script auf poshcode.org verwenden oder versuchen, Hinweise mit System.Net.CookieContainer zu nehmen, um zu vermeiden, in eine Redirect-Schleife zu fallen.

0

Ich hatte ein ähnliches Szenario, wo meine URL umgeleitet wird und dann müssen wir die Datei herunterladen. Was ich tat, war, die umgeleitete URL zu erhalten und für die HTTP-Adresse zu analysieren und erneut mit der umgeleiteten URL aufzurufen. Unten Code funktionierte für mich.

$username = "u" 
$password = "p" 
$auth=$username+":"+$password 
$Encoded = [System.Text.Encoding]::UTF8.GetBytes($auth) 
$EncodedPassword = [System.Convert]::ToBase64String($Encoded) 
$latestArtifactURL = Invoke-WebRequest $url -Headers @{Authorization = "Basic $EncodedPassword"} -MaximumRedirection 0 -ErrorAction SilentlyContinue 
$URLIndex = "$latestArtifactURL".IndexOf('http:') 
$redirectedURL = "$latestArtifactURL".SubString("$URLIndex") 
Invoke-WebRequest $redirectedURL -Headers @{Authorization = "Basic $EncodedPassword"} -Outfile "App.zip" 

Sie können den Webclient auch zum Herunterladen der Datei verwenden. Hoffe das hilft.

Verwandte Themen