我正在努力将有效的CURL命令转换为PowerShell,以便可以利用Invoke-RestMethod。
这是我的CURL命令的示例:
curl.exe "https://cert-manager.com/api/report/v1/ssl-certificates" -i -X POST -H "customerUri: InCommon" -H "Content-Type: application/json;charset=utf-8" -H "login: MyUserNameInfoGoesHere" -H "password: MyPasswordInfoGoesHere" -d "{\"from\":\"2019-08-05T00:00:00.000Z\",\"to\":\"2019-11-03T00:00:00.000Z\",\"organizationIds\":[3637,574,570],\"certificateStatus\":0,\"certificateDateAttribute\":3,\"certificateRequestSource\":0}"
这就是我一直在PowerShell中摆弄的东西:
[string]$from = "2019-08-05T00:00:00.000Z";
[string]$to = "2019-11-03T00:00:00.000Z";
$organizationIds = @(3637, 574, 570);
[int]$certificateStatus = 0;
[int]$certificateDateAttribute = 3;
[int]$certificateRequestSource = 0;
[PsObject]$data = @(
@{
from = $from
to = $to
organizationIds = $organizationIds
certificateStatus = $certificateStatus
certificateDateAttribute = $certificateDateAttribute
certificateRequestSource = $certificateRequestSource
}
)
$jsonData = ConvertTo-Json -InputObject $data;
[System.Collections.Generic.Dictionary[[String], [String]]]$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]";
Set-StandardHeaderConfig -Headers $headers;
[string]$method = "POST";
$certificateReport = Invoke-RestMethod -Uri $uri -Headers $headers -Method $method -Body $jsonData;
哦,这是我的“ Set-StandardHeaderConfig” PowerShell函数(对我的其他调用来说这很好):
Function Set-StandardHeaderConfig {
param (
[Parameter(Mandatory = $true)][System.Collections.Generic.Dictionary[[String], [String]]]$headers
)
$headers.Add("Content-Type", "application/json; charset=UTF-8");
$headers.Add("login", MyUserNameInfoGoesHere);
$headers.Add("password", MyPasswordInfoGoesHere);
$headers.Add("customerUri", "InCommon");
有人可以帮助我向正确的方向推一下,以解决此问题吗?
谢谢!