我可以使用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脚本吗?
答案 0 :(得分:0)
不要这样做:| ConvertTo-Json
您的标头可以替换为:-ContentType application/json
在尝试使用返回的数据之前,您可能不应该将结果转换为HTML。但这取决于你。
答案 1 :(得分:0)
我曾经做过类似的事情,不得不将CURL请求转换为Powershell。也许以下文章会为您提供帮助: CURL to Powershell example
我也遇到了错误
“无效请求”:...
就我而言,该API很奇怪。 CURL对POST方法进行了GET请求的简单回退...花了数小时才意识到我必须在Powershell中执行POST而不是GET。