Используя PowerShell 7, я успешно загружаю файл с помощью Invoke-RestMethod:
$Uri = '...(my url)...'
$File = '...(path to my file)...'
$Form = @{
f = Get-Item -Path $File
}
$Result = Invoke-RestMethod -Uri $Uri -Method Post -Form $Form -StatusCodeVariable 'HttpStatus'
Я бы хотел сделать то же самое с Invoke-WebRequest; Я предпочитаю Invoke-WebRequest, потому что его возвращаемое значение имеет удобную структуру с полями состояния и содержимого внутри, поэтому я могу избавиться от переменной $ HttpStatus и просто преобразовать результат в JSON с помощью '$ Result.Content | ConvertFrom-Json '.
В документации по командлету Invoke-WebRequest есть пример загрузки: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-7, пример 6. Но он использует командлет Invoke-RestMethod. Разве это не опечатка в документации? Могу ли я использовать Invoke-WebRequest так же просто, как в примере Invoke-RestMethod?
Invoke-RestMethod
по сути является оболочкой дляInvoke-WebRequest
, которая принимает свойствоContent
и пытается применить к немуConvertFrom-Json
. Другими словами, вы можете обычно заменятьiwr
наirm
везде, где вы его видите, но у вас будет дополнительный шаг преобразования ответа изJSON
илиXML
или чего-то еще. - person FoxDeploy   schedule 21.03.2020