首页 > 解决方案 > Invoke-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 中的 body 的样子,这只是为了获取我的 API 令牌:

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

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

谢谢

标签: powershellapipost

解决方案


只是一个猜测,看起来像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"
}

推荐阅读