调用WebRequest,POST方法格式化问题



我正在尝试创建一个脚本,以便向我需要使用的API发出一些Post请求,并且在理解如何使用PowerShell时遇到了一些问题。我一开始在邮递员中玩API,因为我的请求有效,但我认为我在如何为PowerShell格式化方面缺少了一些东西:

这是我的PowerShell:

$body = @{
"jsonrpc"="2.0'"
"method"="Login"
}
"partner"="<string>"
"username"="<email>"
"password"="<password>"
}
"id"="1"
}
$contentType = "application/json"
Invoke-WebRequest -Method POST -Uri "<URL>" -body $body -ContentType $contentType

以下是Postman中的身体,这只是为了获得我的API代币:

{
"jsonrpc":"2.0",
"method":"Login",
"params":{
"partner":"<string>",
"username":"<email>",
"password":"<password>"
},
"id":"1"
}

我正在寻找两个链接来学习如何使用POST方法API,以及如何使第一个请求工作的一些指针,从这里我应该能够使用它并达到我的目标。

谢谢

只是猜测,看起来像solarwinds api,无论如何。。。您的json结构无效。。。

你可以这样构建:

$params = @{
jsonrpc = '2.0';
method = 'Login'
params = @{
username = "email"
password = "password"
}
id = "1"
} | ConvertTo-Json
$Token = Invoke-RestMethod -Uri $uri -Body $params -Method Post

最后的机身应该是这样的:

{
"method":  "Login",
"params":  {
"password":  "password",
"username":  "email"
},
"id":  "1",
"jsonrpc":  "2.0"
}