我正在尝试使用此请求调用 API。此请求在 Postman 中运行良好。但是如何将其转换为 PowerShell Invoke-RestMethod
?
这是我尝试过的。
$token = "abcdef123456"
$url = "https://example.com/OVAV1/triggercalls/1"
$header = @{"Authorization"='abdcdef123456'}
$body =
{
"requestid": "<Echo back field>",
"templatename": "Line_Down",
"templateid": "abcde12345",
"noofrecords": 1,
"variableinfo": [
{
"<<MOBILE_NUMBER>>": "123456789",
"<<UNIQUE_CALL_IDENTIFIER>>": "A001",
"<<LinkType>>": "PRI",
"<<HostName>>": "HOSTNAME"
}
]
}
$request = Invoke-RestMethod -Uri $url -Headers $header -Body $body -ContentType "application/json" -Method Post
$request
我在 Postman 中尝试了 JSON 代码。它工作正常。如何在 PowerShell 中使用相同的 JSON 代码?
最佳答案
您不能像那样将 JSON 数据放入 PowerShell 代码中。把它放在一个 here-string 中,它应该可以工作:
$body = @"
{
"requestid": "<Echo back field>",
"templatename": "Line_Down",
"templateid": "abcde12345",
"noofrecords": 1,
"variableinfo": [
{
"<<MOBILE_NUMBER>>": "123456789",
"<<UNIQUE_CALL_IDENTIFIER>>": "A001",
"<<LinkType>>": "PRI",
"<<HostName>>": "HOSTNAME"
}
]
}
"@
您还可以将数据定义为哈希表并将其转换为 JSON 字符串:
$data = @{
"requestid" = "<Echo back field>"
"templatename" = "Line_Down"
"templateid" = "abcde12345"
"noofrecords" = 1
"variableinfo" = @(
@{
"<<MOBILE_NUMBER>>" = "123456789"
"<<UNIQUE_CALL_IDENTIFIER>>" = "A001"
"<<LinkType>>" = "PRI"
"<<HostName>>" = "HOSTNAME"
}
)
}
$body = $data | ConvertTo-Json
关于api - 如何使用 JSON 到 Powershell Invoke-RestMethod?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51649275/