json - 将简单的 curl 数据请求转换为 powershell invoke-webrequest

标签 json powershell curl

将一个非常简单的 Plaid API curl 数据请求转换为 powershell invoke-webrequest

什么有效:

    curl -X POST https://tartan.plaid.com/balance \
  -d client_id=client-id-value \
  -d secret=secret-value \
  -d access_token=access-token-value

我在 Powershell 中失败的尝试

#test powershell api call

$hash = @{  client_id    = "client-id-value";
            secret = "secret-value"
            access_token = "access-token-value"
            }

$JSON = $hash | convertto-json

#Invoke-WebRequest -uri "https://tartan.plaid.com/balance" -Method POST -Body $JSON

这会返回格子错误 1100(缺少客户端 ID),因此我知道某些 API 功能正在运行,但它没有正确解析输入数据。

我最大的误解是如何将“curl -data”值转换为正确的 Powershell 参数。

这是标题值,正文值吗?等等

最佳答案

除非目标 url 期望 POST 正文为 JSON 格式,否则完全跳过 ConvertTo-JSON 步骤。

When the chosen HTTP method is POST, Invoke-WebRequest will automatically take all the keys in the hashtable supplied to the -Body parameter并构造一个类似于 curl -d 的主体有效负载:

$POSTParams = @{
    client_id    = "client-id-value"
    secret       = "secret-value"
    access_token = "access-token-value"
}

Invoke-WebRequest -Uri "https://tartan.plaid.com/balance" -Method POST -Body $POSTParams

关于json - 将简单的 curl 数据请求转换为 powershell invoke-webrequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44990922/

相关文章:

java - 如何使用 Java 解析 php 消息 - HTTP 格式不正确的问题

javascript - 从 Angular 服务加载 JSON 数据

powershell - [VSCODE]中的数字签名脚本

windows - "Extend my Windows desktop onto this monitor"以编程方式

php - PHP : {'error' : "Missing ' inputs' or 'instances' key"} 中的休息 API

javascript - 合并简单对象中的重复键

javascript - 使用 stringify 进行嵌套 JSON 以在 localStorage 中使用

Powershell:如何将 bool 值传递给函数参数?

linux - 从不同目录运行 BASH 脚本时出现问题(目录在路径中)

c++ - 带 POST 的 curl_easy_perform 等待 EOF