首页 > 解决方案 > PowerShell - CURL 返回值和节点,而 Invoke-RestMethod 返回空节点

问题描述

如果我在 Windows CMD 中使用 curl 来获得结果,我将获得带有结果的节点(它是单行 CURL,我将其作为多个以便更好地概览):

curl --request POST "https://app.io/Id=Xz" 
--header "x-api-key: WHp" --header "Content-Type: application/json" 
--data-raw "{\"query\": \"{applications(limit: 2) {nodes {name}}}\" }"

结果不为空,包含 2 个节点:

{"data":{"applications":{"nodes":[{"name":"node1"},{"name":"node2"}]}}}

现在我想在 PowerShell 中做同样的事情,但只得到空节点结果:data->applications->nodes这就是为什么我认为它连接正确但过滤中的某些问题是问题。

$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("x-api-key", "WHp")
$headers.Add("Content-Type", "application/json")
$body = '{"query": "{applications(limit:2) {nodes {name}}}"}'
Invoke-RestMethod 'https://app.io/Id=Xz' -Method 'POST' -Headers $headers -Body $body | ConvertTo-Json

结果:

{
  "data": {
    "applications": {
      "nodes": " "
    }
  }
}

我真的尝试了许多不同的案例如何"double quotes"使用 Powershell 发送,如果这可能是问题,但我真的没有成功使它工作,即使是现在......非常感谢你的帮助!

标签: powershellrestcurlinvoke-restmethod

解决方案


推荐阅读