问题描述
我在上周或更长时间里一直在努力从 powershell 发送 rest api 命令以在 AWX 中添加主机(来自 curl 正在工作)。当我发送一个参数是 worki 但我还需要发送变量
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization","Basic $VfAwxTokenX")
$Headers.Add('Content-Type','application/json')
$body = @{
name = '$vmname'
variables = 'test'
}| ConvertTo-Json
write-output $body
$response = Invoke-RestMethod 'https://awx/api/v2/inventories/2/hosts/' -Method 'POST' -Headers $headers -UseBasicParsing -Body $body
并错误我得到的:
{
"name": "wewewe","variables": "test" } Invoke-RestMethod : {"variables":["Cannot parse as JSON (error: Expecting value: line 1 column 1 (char 0)) or
YAML(错误:输入类型 str
不是字典。”]} 在第 32 行
字符:13
- $response = Invoke-RestMethod 'https://awx/api ... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
- CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod],网络异常
- FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
也许任何用户都遇到过这个问题,现在如何克服它?