2017-03-06 17 views
0

我在用戶ID「[email protected]」中有一個'@',這在傳入其餘呼叫時會導致錯誤「Softlayer Access Denied」。

{ 「錯誤」: 「訪問被拒絕」, 「代碼」: 「SoftLayer_Exception_Public」如何在軟層處理'@'其他電話

}

請建議的方式來解決這個問題。 如果是,我們可以使用別名而不是「[email protected]」用戶。

下面是我試圖做的其他調用。 ?

https://[email protected]:@ api.softlayer.com /休息/ V3/SoftLayer_Account/getVirtualGuests.json objectMask =掩模[主機名;結構域; ID; startCpus; maxCpuUnits;電源狀態;數據中心[名稱,LONGNAME]; maxMemory;電源狀態; CREATEDATE; hourlyBillingFlag; averageDailyPublicBandwidthUsage; billingItem [ID,項[ID,描述]類別[姓名,身份證],兒童[ID,項[ID,描述]類[ID,名稱]]]; networkComponents [狀態,ipAddressBindings。 ipAddress,id,networkId,primaryIpAddress,port,maxSpeed]; networkVlans [subnet [networkIdentifier,networkVlan.primaryRouter.hostname,cidr,gateway,id,netmask,addressSpace,networkVlanId,routingTypeName]]]

回答

0

看來,您使用的REST客戶端,使用Insonmia REST客戶端或Chrome我沒有遇到任何問題。

嘗試編碼這樣的人物@:

當你的用戶ID,對這種情況下的特殊字符時,「@」,您需要使用URL編碼如下:

    https://12345_name%40company.com:@api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests.json?objectMask........ 

其中%40是「@」的URL編碼。

問候

0

有時候有必要使用「基本身份驗證」爲了避免特殊字符,在這種情況下,你需要編碼的用戶名和apiKey,例如:

  • 用戶名: [email protected]
  • apiKey: 375f50232aaba2d002eca7bc5e9dc4f6a0 42a8a65982254df8

需要編碼:

  • 用戶名空間apiKey
  • 123123_ruber @ SOFTLAYER。COM 375f50232aaba2d002eca7bc5e9dc4f6a042a8a65982254df8

的工具,我可以推薦編碼: https://www.base64encode.org/

這裏編碼的例子:

MTIzMTIzX3J1YmVyQHNvZnRsYXllci5jb20gMzc1ZjUwMjMyYWFiYTJkMDAyZWNhN2JjNWU5ZGM0ZjZhMDQyYThhNjU5ODIyNTRkZjg =

因此,有必要增加基本憑據之前字編碼

基本MTIzMTIzX3J1YmVyQHNvZnRsYXllci5jb20gMzc1ZjUwMjMyYWFiYTJkMDAyZWNhN2JjNWU5ZGM0ZjZhMDQyYThhNjU5ODIyNTRkZjg =

然後你就可以添加 「授權」 像下圖所示的頭(我用的Chrome高級REST客戶端):

enter image description here