Загрузить файл с помощью Invoke-WebRequest - PullRequest
0 голосов
/ 21 марта 2020

Используя 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?

1 Ответ

0 голосов
/ 08 апреля 2020

Я успешно заменил командлет в своем коде на Invoke-WebRequest:

$Result = Invoke-WebRequest -Uri $Uri -Method Post -Form $Form -SkipHttpErrorCheck
$httpStatus = $Result.StatusCode
if ($httpStatus -eq 200)
{
    $j = $Result.Content | ConvertFrom-Json
    . . . .
}

FoxDeploy, ваш комментарий был весьма полезен. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...