2012-03-26 3 views
1

powershell 용 webclient를 사용하여 파일을 다운로드 한 것을 확인했습니다. 문제는 요청 URL이 실제 파일이 표시되기 전에 여러 번 리디렉션된다는 것입니다. 그것은 쿼리 문자열 meathod와 ssrs 웹 인터페이스의 다운로드 = bla.csvURL 리디렉션시 Powershell을 사용하여 웹에서 파일을 다운로드하는 방법

어떤 생각이 이것을 달성하는 방법?

+0

그들은 비누 요청 뒤에 숨겨진 요청을 보입니다. –

+0

예를 들려 줄 수 있습니까? – JPBlanc

+0

웹 요청은 자동 제출 양식이있는 웹 페이지를 반환합니다. PowerShell에 해당 양식을 제출할 수 있습니까? –

답변

0

나는 this script을 poshcode.org에 사용하거나 System.Net.CookieContainer을 사용하여 힌트를 취해서 리디렉션 루프에 빠지지 않도록 할 수 있다고 생각합니다.

0

필자의 URL이 리디렉션 된 다음 파일을 다운로드해야하는 유사한 시나리오가있었습니다. 내가 한 것은 리다이렉트 된 URL을 얻고 http 주소를 파싱 한 후 리디렉션 된 URL로 다시 호출 한 것입니다. 아래 코드는 나를 위해 일했습니다.

$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" 

또한 웹 클라이언트를 사용하여 파일을 다운로드 할 수도 있습니다. 희망이 도움이됩니다.

관련 문제