首页 > 解决方案 > Powershell 发布 API 请求

问题描述

我可以使用带有以下内容的 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 但收到错误“无效请求”:

$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 脚本的任何指示?

标签: restapipowershellpost

解决方案


我曾经做过类似的事情,不得不将 CURL 请求翻译成 Powershell。也许以下文章会对您有所帮助: CURL to Powershell example

我也得到了错误

“无效的请求”:...

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


推荐阅读