Ответ REST (POST через Powershell) не завершен - PullRequest
0 голосов
/ 21 ноября 2018

Я начал работать с Invoke-RestMethod от Powershell, и теперь у меня проблема с тем, что ответы, которые я получил после моего POST на REST API нашего инструмента мониторинга, не завершены.Если я использую другие инструменты, такие как REST-расширение для браузера, я получил гораздо больше отзывов:

Response REST Extension Webbrowser:

{
   "entry": [
      {
         "@datatype": "int",
         "@name": "CheckTime",
         "value": {
            "@type": "xs:int",
            "$": "1542802849"
         }
      },
      {
         "@datatype": "int",
         "@name": "AvailPageFile",
         "value": {
            "@type": "xs:int",
            "$": "12345"
         }
      }
   ]
}

ResponsePowershell Invoke-RestMethod:

entry
-----
@{@datatype=int; @name=CheckTime; value=} @{@datatype=int; @name=AvailPageFile; value=}

, поэтому 2-й уровень {} после значения = отсутствует.

Вот мой код:

$username = "user"
$password = "password"
$url = "http://urlREST"

$headers = @{
    "Authorization" = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$($username):$($password)")); 
    "Accept" = 'application/json ';
}


$data = @{}
$body = ConvertTo-Json $data

Invoke-RestMethod -Uri $url -Headers $headers -ContentType "application/json" -Method Post -Body $body 

У кого-нибудь есть подсказка для меня?

Спасибо

1 Ответ

0 голосов
/ 21 ноября 2018

Вы в основном получаете тот же ответ, но он находится внутри объекта PSobject.Попробуйте следующее:

$response = Invoke-RestMethod -Uri $url -Headers $headers -ContentType "application/json" -Method Post -Body $body

Теперь поиграйте с параметром $ response, например:

$response.entry
$response.entry.name

Etcetera.Также выполните:

$response.gettype()

Чтобы узнать больше об объектах PowerShell.Если это все еще не дает вам нужную информацию, ищите responseStream и как его получить!

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