我正在使用SOFTLAYER REST API来获取虚拟机列表,然后选择其中一个结果并获取有关所选计算机的更多详细信息。
我使用此URL通过主机名获取计算机详细信息,但我获得了所有计算机而不是我选择的计算机
网址:
https://api.softlayer.com/rest/v3.1/SoftLayer_Account/getVirtualGuests.json?objectMask=mask[id,hostname,fullyQualifiedDomainName,provisionDate,powerState,operatingSystem[id,passwords[password,username],softwareDescription[longDescription]]]&objectFilter={"hostname":{"operation":"SLRAMONT02"}}
我该怎么办才能得到怀特的结果?
我使用了相同url的python并得到了预期的结果但是在调试之后我发现python正在将JSON转换为XML并使用SOAP API。
我不打算使用python API而是使用JAVA。我可以使用JAVA API发出相同的请求吗?
答案 0 :(得分:0)
这基本上在这里回答:Softlayer filtering not working。
在您的情况下,您需要使用以下过滤器:
objectFilter={"virtualGuests":{"hostname":{"operation":"SLRAMONT02"}}}
我还建议您查看:How to use object filter with softlayer rest api?
不幸的是,Softlayer-Java API尚不支持对象过滤器,这在此处注释:
Object Filters in Softlayer in Java
https://github.com/softlayer/softlayer-java/issues/30
如果您确实需要在Java中使用对象过滤器,可以尝试使用RESTFul,以下链接中有一些RESTful示例。
https://www.mkyong.com/webservices/jax-rs/restfull-java-client-with-java-net-url/ https://www.mkyong.com/webservices/jax-rs/restful-java-client-with-apache-httpclient/