将一个非常简单的 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/