首页 > 解决方案 > 如何将此 curl 命令转换为 PowerShell

问题描述

我正在使用 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"\}'

谢谢你的帮助

标签: powershellcentreon-api

解决方案


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

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

您可能想尝试将您的 uri 字符串转换为 type [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

推荐阅读