【发布时间】:2017-06-04 01:45:20
【问题描述】:
我在使用 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 代码作为返回代码。任何指导都会非常有帮助。
【问题讨论】:
-
是
$jbody字符串还是powershell 对象? -
能否提供完整的退货状态? 308 是永久重定向,新的 URL 应该是响应的一部分。
-
查看文档后,URL 中的
v0可能应该是v1或当前发布的任何 API 版本,这可能解释了 308 重定向响应。要么是它,要么是因为它拒绝了你的密钥而将你重定向到登录页面?根据其他评论,需要完整的错误或查看它会将您重定向到哪里。 -
1.) 当我运行 get-member 时,它显示为 System.String,这很奇怪,因为我将该正文通过管道传输到“convertto-json”中。如果我运行 convertfrom-json,它会正确地将其转换为正常的 psobject 格式。
-
2.) @Micky-Balladelli 当我输出异常时,我得到的是:System.Net.WebException:远程服务器返回错误:(308)。
标签: rest powershell