使用Jersey客户端接收不完整的响应。如何让客户等待获得完整的回复

时间:2017-01-17 03:21:37

标签: java rest jersey jersey-client jersey-1.0

我正在创建泽西客户端(jersey-client1.8,jersey-core1.8)

ClientConfig clientConfig = new DefaultClientConfig();
Client restClient = Client.create(clientConfig);
WebResource webResource = restClient.resource(serviceURL)
  /*try{  
  Thread.sleep(10000);
} catch(InterruptedException ie){}
*/

ClientResponse response = webResource.accept("application/xml")
            .header("Authorization", "Basic " + credentials)            
            .get(ClientResponse.class);

//response data 
    if(response.getStatus()== HttpStatus.SC_OK) {
        String responseInXMLString = response.getEntity(String.class);

我收到了成功回复。 字符串中的响应是:

<Entity>
  <field>
  <Name>status</name>
  <Value/>
</field>

这里我没有收到字段'id'的值。

当我通过保持断点在线进行调试时:
   ClientResponse response = webResource.accept("application/xml") 并逐行开始调试然后我得到字段'id'的值。  要么 如果我放thread.sleep(10000)那么我就会获得字段'id'的价值。

请建议如何处理此问题以获得完整的回复。

0 个答案:

没有答案