我遇到了一个来自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条答案
按热度按时间ncecgwcz1#
好吧我知道问题所在了多亏了一些响应,我才能重新找到线索并弄清楚。2我的问题的第一部分是理解308响应错误的含义。3在理解这是一个重定向错误后,我在Web浏览器中手动运行rest命令以找到重定向URL。4然后我用这个URL作为我的rest字符串的URI前缀。在找出问题所在时遇到的第二个最大问题是,我没有从服务器响应错误中获得足够的信息,我找到了另一个堆栈溢出主题,它向我展示了如何获得完整的json响应Here
在使用streamreader方法之后,我得到了一个更好的错误描述:
电子邮件miles@meraki.com已注册Cisco Meraki Dashboard帐户。出于安全考虑,该用户必须验证其电子邮件地址,然后才能在此处授予管理员权限。
所以很明显,这个问题归结为我试图在我的 Jmeter 板上创建一个与API示例文档同名的测试帐户,我只是用我自己的自定义后缀修改了电子邮件后缀,这就解决了这个问题,rest命令也工作了!
感谢那些帮助我指明正确方向的人。