Azure Runbook Webhook с параметрами из httpClient - PullRequest
0 голосов
/ 04 мая 2018

посмотрел несколько примеров того, как выполнить webhook с параметрами, но, похоже, не может установить связь с тем, что мне не хватает. Любые советы о том, что я делаю неправильно, будут оценены.

пожалуйста, примите во внимание: мой бегунок Powershell

[CmdletBinding()]
Param([object]$WebhookData) #this parameter name needs to be called 
WebHookData otherwise the webhook does not work as expected.

$VerbosePreference = 'continue'
Write-Output "hello"
    "in the inline"
    if($WebhookData -ne $null) 
        {
            "using webhookdata"
            $WebhookName =  $WebhookData.WebhookName
            $WebhookBody =  $WebhookData.RequestBody
            $webhookBodyObject = $WebhookBody | ConvertFrom-JSON


line 15            'The parameter created was ' $webhookBodyObject.strYear

Мой запрос на публикацию httpclient выглядит следующим образом (предупреждение ... его vb)

dim WebHookData as new StringContent("{'strYear'='2018'}",Encoding.UTF8,"application/json")

        Dim resp as Task(Of HttpResponseMessage)
        resp = _client.PostAsync(webhook,WebHookData)
        status = resp.Result.Content.ReadAsStringAsync().Result
        if(status.Contains("JobId"))
            status = "Scheduled!"
        End If

Мои данные Webhook публикуются на моем webhook, как это.

{"WebhookName":"myimportjob","RequestBody":"{'strYear'='2018'}","RequestHeader":{"Connection":"Keep-Alive","Expect":"100-continue","Host":"xxx.azure-automation.net","x-ms-request-id":"xxx"}}

Я получаю эту ошибку

В строке: 15 символов: 42 + 'Создан параметр' $ webhookBodyObject.strYear + ~~~~~~~~~~~~~~~~~~ Неожиданный токен '$ webhookBodyObject' в выражении или заявление.

1 Ответ

0 голосов
/ 04 мая 2018

Я обнаружил, что дьявол кроется в деталях. Во-первых, у меня было

$webhookBodyObject = $WebhookBody | ConvertFrom-JSON

что не совпадает с

$webhookBodyObject = $WebhookBody | ConvertFrom-Json <---this is the correct syntax

Другое дело, что json, который я отправлял, имел одинарную кавычку, такую ​​как '{"key": "value"}'

По какой-то причине, несмотря на то, что он прошел обычную PowerShell, Runbook это не понравилось. Он хочет, чтобы это был Json вот так {"key": "value"}. Я никогда не проверял сложные объекты, поэтому не могу говорить об этом.

...