Download di un file in PowerShell
Questo PowerShell usa il comando Invoke-WebRequest per salvare un file con il suo nome originale contenuto nell'header Content-Disposition
Se il file fosse disponibile solo in POST, va cambiato il metodo (-Method) e passato un oggetto nel body (-Body)
PowerShell: download con nome
$Url = "https://localhost:44316/download/file000"
# creo un nome temporaneo
$fileNameTemp = "$(New-Guid).tmp"
$fileNameTemp
# eseguo il download (GET) del file (OutFile) facendomi ritornare l'oggetto (PassThru)
$Response = Invoke-WebRequest -Uri $Url -OutFile $fileNameTemp -PassThru
# status della richiesta OK=200
$Response.StatusCode
# ricavo il nome del file
$ContentDisposition = [System.Net.Mime.ContentDisposition]::new($Response.Headers["Content-Disposition"])
$fileName = $ContentDisposition.FileName
# rinomino il file temporaneo con il nome corretto
Rename-Item -Path $fileNameTemp -NewName $fileName
# visualizzo il nome
$fileName
Il file viene salvato nella directory corrente
Se il file fosse disponibile solo in POST, va cambiato il metodo (-Method) e passato un oggetto nel body (-Body)
PowerShell: Download in POST
$Url = "https://localhost:44316/download"
#parametri della richiesta POST
$Params = @{
fileKey="F9541E42E44D7CF0B034AF4AA210AC13"
}
# creo un nome temporaneo
$fileNameTemp = "$(New-Guid).tmp"
$fileNameTemp
# eseguo il download (POST) del file (OutFile) facendomi ritornare l'oggetto (PassThru)
$Response = Invoke-WebRequest -Uri $Url -Method POST -Body $Params -OutFile $fileNameTemp -PassThru
# status della richiesta OK=200
$Response.StatusCode
# ricavo il nome del file
$ContentDisposition = [System.Net.Mime.ContentDisposition]::new($Response.Headers["Content-Disposition"])
$fileName = $ContentDisposition.FileName
# rinomino il file temporaneo con il nome corretto
Rename-Item -Path $fileNameTemp -NewName $fileName
# visualizzo il nome
$fileName