我正在调用REST API,如下所示
String uri = "http://localhost:8080/jd/rest/emp/getEmp";
EmpRequest request = new EmpRequest();
//set id as 1 for OK response
request.setId(2);
request.setName("PK");
try{
Client client = Client.create();
WebResource r=client.resource(uri);
ClientResponse response = r.type(MediaType.APPLICATION_XML).post(ClientResponse.class,request );
System.out.println(response.getStatus());
if(response.getStatus() == 200){
EmpResponse empResponse = response.getEntity(EmpResponse.class);
System.out.println(empResponse.getId() + "::"+empResponse.getName());
}else{
ErrorResponse exc = response.getEntity(ErrorResponse.class);
System.out.println(exc.getErrorCode());
System.out.println(exc.getErrorId());
}
}catch(Exception e){
System.out.println(e.getMessage());
}
此处发送请求需要很长时间。我怀疑这是因为它每次都在制作一个新的JAXB对象。有没有办法在这种方法中使用相同的JAXB对象?
我已经把每个步骤之后的时间放在本地文件中了。这个步骤似乎需要花费最多的时间(差不多15秒)
ClientResponse response = r.type(MediaType.APPLICATION_XML).post(ClientResponse.class,request );
答案 0 :(得分:0)
建议您拨打网络服务,而不是您自己,您将无法控制它将如何(以及何时)作出反应。
这就是您致电
的原因r.type(MediaType.APPLICATION_XML).post(ClientResponse.class, request);
需要很长时间。