Powershell Post API请求

时间:2019-03-07 23:38:53

标签: rest api powershell post

我可以使用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 :(得分:0)

不要这样做:| ConvertTo-Json

您的标头可以替换为:-ContentType application/json

在尝试使用返回的数据之前,您可能不应该将结果转换为HTML。但这取决于你。

答案 1 :(得分:0)

我曾经做过类似的事情,不得不将CURL请求转换为Powershell。也许以下文章会为您提供帮助: CURL to Powershell example

我也遇到了错误

  

“无效请求”:...

就我而言,该API很奇怪。 CURL对POST方法进行了GET请求的简单回退...花了数小时才意识到我必须在Powershell中执行POST而不是GET。

相关问题