Questo
PowerShell usa il comando
Invoke-WebRequest per salvare un file con il suo nome originale contenuto nell'header
Content-Disposition$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)
$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