2017-03-06 28 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