无法 URL 为软层 REST URI 中的对象过滤器编码 { }

Unable to URL encode { } for object filters in softlayer REST URI

我正在通过 Rest 调用 Get 方法,我的 URI 包含用于 Softlayer 中对象过滤器的 { }。我对 { 使用 %7B,对 } 使用 %7D,但我得到 java.net.URISyntaxException.

URI 还包含我已用 %40 替换的 @。这是工作。我正在使用 http 客户端来执行我的 Rest Call。 URI 在 Postman 上运行良好,无论是否使用 URL 编码。

这里有两种方式可以跳过或处理@:

另一种跳过特殊字符的方法是,在任何这些字符的开头使用“\”,这里有一个例子:

  • SoftLayer getUsers by userStatusID

此外,有必要跳过 {}": (objectFilters 中的特殊字符),如果你继续命中异常,如果你能提供一个例子就太好了或您正在尝试的确切代码,以获得进一步的帮助


如何获取特定数据中心的虚拟访客

这里是 dal05 数据中心的休息请求:

https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectMask=mask%5Bid%2Chostname%5D&objectFilter=%7B%22virtualGuests%22%3A%7B%22datacenter%22%3A%7B%22name%22%3A%7B%22operation%22%3A%22dal05%22%7D%7D%7D%7D