检查是否存在Person
我使用RESTful资源,我通过GET访问这样的资源:
GET http://api.my-site.com/persons?id=254
我可以获得此响应,例如:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persons id="http://api.my-site.com/persons" size="2" offset="0" total="2">
<person>
<id>http://api.my-site.com/person/1</id>
</person>
<person>
<id>http://api.my-site.com/person/2</id>
</person>
</persons>
如果有人或我得到此答复:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persons id="http://api.my-site.com/persons" size="0" offset="0" total="0"/>
如果没有人。
我用Jersey
执行Java中的GET,如下所示:
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
...
boolean checkIfPersonExist(String uri){
Client client = Client.create();
WebResource webResource = client.resource(uri);
ClientResponse response = webResource
.accept("application/xml")
.get(ClientResponse.class);
String output = response.getEntity(String.class);
现在我想检查Persons
中是否有Response
。目前我只检查total="0"
是否在Response
内。
if (response.getStatus() == OK) {
return !output.contains("total=\"0\"");
} else {
throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
}
}
这有效,但我对它不满意,因为它并没有真正检查是否有人,但是这个字符串是否存在。
这样做有更好的方法吗?
也许创建一个PersonListEntity
可以包含Persons
,并执行以下操作:
PersonListEntity output = response.getEntity(PersonListEntity.class);
是否可以拥有一个PersonListEntity
,其中可以包含多个{偶像{}}?
不幸的是,改变我的RESTful资源的行为对我来说是不可取的。