{ “错误”:“访问被拒绝。”, “code”:“SoftLayer_Exception_Public”
请建议如何解决这个问题。 我们可以使用别名而不是“12345_name@company.com”用户。
以下是我想要做的休息电话。
https://12345_name@company.com:@ api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests.json?objectMask=mask[hostname;domain;id;startCpus;maxCpuUnits;powerState;datacenter[name,longName];maxMemory ;电源状态; CREATEDATE; hourlyBillingFlag; averageDailyPublicBandwidthUsage; billingItem [ID,项[ID,描述]类别[姓名,身份证],儿童[ID,项[ID,描述]类[ID,名称]]]; networkComponents [状态,ipAddressBindings.ipAddress,ID,NETWORKID,primaryIpAddress,端口,MAXSPEED]; networkVlans [子网[networkIdentifier,networkVlan.primaryRouter.hostname,CIDR,网关,ID,子网掩码,地址空间,networkVlanId,routingTypeName]]]
答案 0 :(得分:0)
这似乎取决于您使用的REST客户端,使用Insonmia REST客户端或Chrome我没有遇到任何问题。
尝试像这样编码字符@:
由于您的用户ID具有特殊字符,在这种情况下为“@”,您需要使用以下URL编码:
https://12345_name%40company.com:@api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests.json?objectMask........
其中%40是'@'的URL编码。
此致
答案 1 :(得分:0)
有时需要使用“基本身份验证”以避免使用特殊字符,在这种情况下,您需要对用户名和apiKey进行编码,例如:
- 用户名: 123123_ruber@softlayer.com
- apiKey: 375f50232aaba2d002eca7bc5e9dc4f6a042a8a65982254df8
你需要编码:
我可以推荐用于编码的工具: https://www.base64encode.org/
此处编码的示例:
<强> MTIzMTIzX3J1YmVyQHNvZnRsYXllci5jb20gMzc1ZjUwMjMyYWFiYTJkMDAyZWNhN2JjNWU5ZGM0ZjZhMDQyYThhNjU5ODIyNTRkZjg = 强>
在凭据编码
之前添加基本字词是必要的基本MTIzMTIzX3J1YmVyQHNvZnRsYXllci5jb20gMzc1ZjUwMjMyYWFiYTJkMDAyZWNhN2JjNWU5ZGM0ZjZhMDQyYThhNjU5ODIyNTRkZjg =
然后您可以添加“授权”作为标题,如下例所示(我使用Chrome的Advanced Rest Client):