在使用Powershell调用Invoke-RestMethod时,如下所示:
Invoke-RestMethod -Method Get -Uri "https://google.com/api/GetData" -Headers $headers和$headers是
$headers = @{
Authorization="Secret $username $password"
Content='application/json'
}参数$username和$password的预期格式是什么
发布于 2019-01-16 17:47:38
据我所知,您必须在请求标头中发送OAuth2令牌。
$headers = @{
Authorization="Bearer $token"
}也许下面的博客文章会给你提供一个如何做到这一点的想法。https://lazyadmin.nl/it/connect-to-google-api-with-powershell/
发布于 2020-01-01 22:01:26
Rufer7提供的解决方案是正确的。我只想再添加一件事,您也可以在Invoke-WebRequest方法中传递content参数,使头部更简单,并获得Json格式的输出。因此,我精炼的脚本将如下所示。
Powershell脚本:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$headers = @{
Authorization="Bearer $token"
}
$responseData = (Invoke-WebRequest -Uri $Url -Method Get -Headers $headers -UseBasicParsing -ContentType "application/json").Content | ConvertFrom-Json | ConvertTo-Json只有在观察到此错误时,第一行才是可选的,否则可以忽略此错误。
"Invoke-WebRequest :请求已中止:无法创建SSL/TLS安全通道。“
发布于 2020-07-20 18:15:06
在我的场景中,我在REST API调用体中使用了username和password。我的身体是:
$body = [PSCustomObject] @{
username=$Credential.UserName;
password=$Credential.GetNetworkCredential().Password;
} | ConvertTo-Json在函数中,我使用了PSCredential类:
[System.Management.Automation.PSCredential]
[System.Management.Automation.Credential()]
$Credential = [System.Management.Automation.PSCredential]::Empty,最后,我这样称呼它:
Invoke-RestMethod -Method Get -Uri "https://google.com/api/GetData" -ContentType application/json -Body $body设置了ContentType,因为我希望JSON响应。
https://stackoverflow.com/questions/54191266
复制相似问题