与Meraki Dashboard API的powershell REST API问题

时间:2017-06-04 01:45:20

标签: rest powershell

我遇到了来自meraki的特定REST api的问题。我已经能够成功执行所有的get操作,但是我接收的POST操作是" 308"来自服务器的错误。我试图做以下事情:

示例请求:

curl -L -H 'X-Cisco-Meraki-API-Key: <key>' -X POST -H 'Content-Type: 
application/json' --data-binary '{"name":"Miles Meraki", 
"email":"miles@meraki.com", "orgAccess":"none", "tags":[{"tag":"west", 
"access":"read-only"}]}' 
'https://dashboard.meraki.com/api/v0/organizations/1234/admins'

我的要求:

Invoke-RestMethod -Method Post -Uri 
https://dashboard.meraki.com/api/v0/organizations/$global:MerakiOrg/admins/ -
Body $jbody -Headers $Global:MerakiHeader -ContentType 'application/json'

我的$ jbody值是示例中文字复制的json。我不熟悉这个308代码作为返回代码。任何指导都会非常有帮助。

1 个答案:

答案 0 :(得分:0)

好的,我想出了这个问题,多亏了一些回复,我能够回到路上并弄明白。我的问题的第一部分是理解308响应错误的含义。在了解到它是重定向错误后,我在Web浏览器中手动运行rest命令以找出重定向URL。然后我使用此URL作为其余字符串的URI前缀。我弄清楚出了什么问题的第二大问题是我在服务器响应错误中没有获得足够的信息。我找到了另一个堆栈溢出主题,它向我展示了如何获得完整的json响应 Here

在做了streamreader方法后,我得到了一个更好的描述我的错误:

  

电子邮件miles@meraki.com已在Cisco Meraki Dashboard帐户中注册。对于s   出于安全目的,用户必须在管理员认证之前验证他/她的电子邮件地址   可以在这里授予sions。

显然,问题归结为我试图在我的仪表板上创建一个与api示例文档中的名称相同的测试帐户。我只是用我自己的自定义后缀修改了电子邮件后缀,这解决了问题,其余命令工作了!

感谢那些帮助我指出正确方向的人。