url重定向时如何使用Powershell从Web下载文件
Posted
技术标签:
【中文标题】url重定向时如何使用Powershell从Web下载文件【英文标题】:How to download file from the web with Powershell when url redirects 【发布时间】:2012-03-26 20:39:44 【问题描述】:我已经看到使用 webclient for powershell 下载文件。问题是在实际文件出现之前,请求 url 会多次重定向。这是一个带有查询字符串的 s-s-rs Web 界面
知道如何做到这一点吗?
【问题讨论】:
看起来他们将请求隐藏在一些肥皂请求后面 网络请求返回一个带有自动提交表单的网页。我可以让 powershell 提交该表单吗? 【参考方案1】:我认为您可以在 poshcode.org 上使用 this script 或尝试使用 System.Net.CookieContainer
获取提示以避免陷入重定向循环。
【讨论】:
【参考方案2】:我有一个类似的情况,我的 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"
您也可以使用网络客户端下载文件。希望这会有所帮助。
【讨论】:
以上是关于url重定向时如何使用Powershell从Web下载文件的主要内容,如果未能解决你的问题,请参考以下文章
从任务计划程序运行时如何重定向 PowerShell 输出?