Powershell Post API Запрос - PullRequest
       10

Powershell Post API Запрос

0 голосов
/ 08 марта 2019

Я могу отправить запрос, используя bash, со следующим:

#!/bin/bash
APIKey="apikeyhere"
content="{\"accessToken\":\"$APIKey\",\"elements\":[{\"serialnumber\":\"AAAAAAAAA\",\"name\":\"EXAMPLENAME\",\"tags\":\"EXAMPLETAG\"}]}"
curl  -s -k -X POST -d 'content='$content 'https://apiaccess.example.com/v2/devices'

Я пытался использовать powershell, но выдает ошибку «INVALID REQUEST»:

$body = @{
"accessToken"="APIKeyhere"
"elements" = @{
 "serialnumber"="AAAAA"
 "name"="DeviceName"
 "tags"="tag1,tag2"
}} | ConvertTo-Json

$header = @{
 "Accept"="application/json"
 "Content-Type"="application/json"
} 

Invoke-RestMethod -Uri "https://apiaccess.example.com/v2/devices" -Method 'Post' -Body $body -Headers $header | ConvertTo-HTML

Есть ли какие-либо замечания относительно того, как я могу исправить скрипт powershell?

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Однажды я сделал нечто подобное, и мне пришлось перевести запрос CURL в Powershell.Может быть, вам поможет следующая статья: Пример CURL для Powershell

Я также получил сообщение об ошибке

"INVALID REQUEST": ...

В моем случае API был странным.CURL сделал простой откат запроса GET к методу POST ... потребовались часы, чтобы понять, что мне нужно сделать POST вместо GET в Powershell.

0 голосов
/ 08 марта 2019

Не делай этого: | ConvertTo-Json

Ваши заголовки могут быть заменены на: -ContentType application/json

Вероятно, вам не следует преобразовывать результаты в HTML, пока вы не поэкспериментируете с данными, которые вернетесь. Но это зависит от вас.

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