2017-06-04 43 views
0

我有一個來自meraki的特定REST API的問題。我已經能夠成功執行所有獲取操作,但POST操作正在從服務器收到「308」錯誤。我試圖做到以下幾點:與Meraki儀表板API的PowerShell REST API問題

請求示例:

curl -L -H 'X-Cisco-Meraki-API-Key: <key>' -X POST -H 'Content-Type: 
application/json' --data-binary '{"name":"Miles Meraki", 
"email":"[email protected]", "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代碼作爲返回碼。任何指導都會非常有幫助。

+0

是'$ jbody'一個字符串還是一個powershell對象? – 4c74356b41

+1

你能提供完整的退貨狀態嗎? 308是永久重定向,新的URL應該是響應的一部分。 –

+0

查看過文檔後,它看起來像URL中的'v0'或許應該是'v1'或當前發佈的任何版本的API,這可能會解釋308重定向響應。無論是它還是它將您重定向到登錄頁面,可能是因爲它拒絕了您的密鑰?根據其他評論,需要完整的錯誤或查看重定向你的位置。 –

回答

0

好吧,我想出了這個問題,這要歸功於我能夠回到路上並找出答案的一些迴應。我的問題的第一部分是瞭解308響應錯誤的含義。在瞭解這是一個重定向錯誤之後,我手動在網絡瀏覽器中運行rest命令以找出重定向URL。然後我使用這個URL作爲我的休息字符串的URI前綴。我在弄清楚發生了什麼問題時遇到的第二個問題是,我沒有收到服務器響應錯誤中的足夠信息。我發現了另一個堆棧溢出話題,告訴我如何獲得完整的JSON響應 Here

做StreamReader的方法,我得到了什麼我的錯誤是一個更好的描述之後:

Email [email protected] is already registered with a Cisco Meraki Dashboard account. For s ecurity purposes, that user must verify his/her email address before administrator permis sions can be granted here.

因此很明顯,這個問題煮直到我試圖在儀表板上創建一個與api示例文檔中名稱相同的測試帳戶。我只是用我自己的自定義後綴修改了電子郵件後綴,解決了問題,其餘的命令都起作用了!

感謝那些幫助我指向正確方向的人。