【问题标题】:how to convert this curl command to PowerShell如何将此 curl 命令转换为 PowerShell
【发布时间】:2021-08-24 16:12:59
【问题描述】:

我正在使用 PowerShell 并想在 PowerShell 中转换此 curl 命令。它在 bash 中运行良好

curl -s -H 'X-AUTH-TOKEN:'09f4a92e8fbfc9f9f530771ac32d37a1'' -H "Content-Type: application/json" -X GET 'http://127.0.0.1/centreon/api/beta/monitoring/services?search=\{"service.state":"2","service.is_acknowledged":"0"\}'

感谢您的帮助

【问题讨论】:

  • Curl.exe也可供您使用

标签: powershell centreon-api


【解决方案1】:

可以将其他标头作为哈希表条目添加到 -Headers 属性:

$result = curl -Uri $uri -ContentType application/json -Method Get -Headers @{'X-AUTH-TOKEN'='09f4a92e8fbfc9f9f530771ac32d37a1'} 

您可能想尝试将您的 uri 字符串转换为类型 [System.URI]。这将处理标准字符替换,例如 ' ' 到 %20。我认为curl 已经这样做了,但它可能会帮助您查看某些内容是否无效:

$uri = [System.Uri]::new('http://127.0.0.1/centreon/api/beta/monitoring/services?search=\{"service.state":"2","service.is_acknowledged":"0"\}')

# check the output:
$uri.AbsoluteUri

http://127.0.0.1/centreon/api/beta/monitoring/services?search=%5C%7B%22service.state%22:%222%22,%22service.is_acknowledged%22:%220%22%5C%7D

【讨论】:

  • PowerShell 不接受这部分 uri {"service.state":"2","service.is_acknowledged":"0"\}'"跨度>
  • @AdolfKu 你用的是什么版本的powershell?它的 powershell 似乎为我接受它,但我没有实际的 web 服务来测试。您可能想先尝试将其转换为 URI?添加到答案,因为它有点长。
【解决方案2】:

这是对我有用的解决方案。 我已将{"service.state":"2","service.is_acknowledged":"0"\}更改为 ==> {"service.state":"2","service.is_acknowledged":"0"}"

谢谢

【讨论】:

  • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
猜你喜欢
  • 2021-10-08
  • 2012-05-10
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
相关资源
最近更新 更多