我正在尝试访问Netbox中的秘密,如本例所示。
https://netbox.readthedocs.io/en/latest/api/working-with-secrets/
但是使用Powershell但我好像撞到了砖墙。
这是我的代码:
Add-Type -AssemblyName System.Web
$Hdrs = @{}
$Hdrs.Add("Authorization","Token fafcaea339cf926c0d79tokenf916aeec2d18bdd")
$Hdrs.Add("Accept","application/json; indent=4")
$body = Get-Content 'c:\key\private.txt'
$body = [System.Web.HttpUtility]::UrlEncode($body)
Invoke-RestMethod -Method post -Uri "http://netbox.et/api/secrets/get-session-key/" -Headers $Hdrs -body $body我只是得到了错误
Invoke-RestMethod : Private key was not provided.我很确定问题是我是如何形成请求的,但是,我对curl还不太了解,不知道在Powershell中做什么--数据,以及它会是什么样子。任何帮助都将不胜感激。
发布于 2018-07-06 11:04:10
好吧,有很多问题。首先,我需要将私钥作为一个对象传递给对象,其中包含两个清晰的字段,比如我是头字段;另一个是,我通过在报头中定义私钥来对其进行URL编码,然后使用一个函数再次对其进行URL编码,从而使私钥无效。
这就是解决办法
Add-Type -AssemblyName System.Web
$Hdrs = @{}
$body = @{}
$Hdrs.Add("Authorization","Token fafcaea339cf926c0d7977e3ff916aeec2d18bdd")
$Hdrs.Add("Accept","application/json; indent=4")
$Hdrs.Add("Content-Type","application/x-www-form-urlencoded")
$Pkey = Get-Content -raw 'c:\key\private.txt'
$body.add("private_key",$PKey)
Invoke-RestMethod -Method post -Uri "http://netbox.net/api/secrets/get-session-key/" -Headers $Hdrs -Body $bodyhttps://stackoverflow.com/questions/51205891
复制相似问题