У меня была похожая проблема с другим API. Я использовал метод ниже для устранения неполадок. Запустите этот код и сообщите, что вы видите. Возможно, вам придется включить этот параметр net_id. В моем случае я пропустил обязательный параметр, которого не было в документации REST для приложения, с которым я работал.
Ниже я поместил ваш код в функцию REST-CALL, затем я включил функцию, чтобы помочь нам понять ошибку (Get-ErrorFromResponseBody). Мы пробуем командлет invoke-restmethod, и в случае ошибки он перехватывается и обрабатывается Get-ErrorFromResponseBody. Хотя это не совсем ваш ответ, это шаг к нему. Я обновлю это после того, как вы сообщите ответ.
function REST-CALL(){
$json = ConvertTo-Json (@{"username"="Test";"password"="Test"})
$token = (Invoke-WebRequest -Uri "https://RestAPI-URL" -Body $json -ContentType "application/json" -Method POST).content | Out-String | ConvertFrom-Json
$token = $token.access_token
$header = @{auth="Basic $token"}
$Parameters = @{
net_cidr = '10.0.0.0/8'
}
try{
$global:site = Invoke-RestMethod -Uri "https://RestAPI-URL" -Headers $header -body $Parameters -Method POST -ContentType "application/json"
}
catch{
write-host "An exception occurred: The request did not complete."
Get-ErrorFromResponseBody($_)
}
}
Function Get-ErrorFromResponseBody($ErrorMessage) {
#Determine if we are using PowerShell v5.1 and lower exception handling
if ($PSVersionTable.PSVersion.Major -lt 6) {
if ($Error.Exception.Response) {
$Reader = New-Object System.IO.StreamReader($ErrorMessage.Exception.Response.GetResponseStream())
$Reader.BaseStream.Position = 0
$Reader.DiscardBufferedData()
$ResponseBody = $Reader.ReadToEnd()
if ($ResponseBody.StartsWith('{')) {
$ResponseBody = $ResponseBody | ConvertFrom-Json
}
return $ResponseBody
}
}
else {
return $ErrorMessage.ErrorDetails.Message
}
}
REST-CALL
"Флаг --data должен использоваться для определения данных POST." Поэтому я чувствую, что вы должны попробовать метод POST.