如何在响应中调用readEntity两次?

jwi*_*ils 6 java rest jax-rs jaxb httpresponse

我现在正在做的是导致:

java.io.IOException: stream is closed
Run Code Online (Sandbox Code Playgroud)

在第二个readEntity(),因为它在第一次读取后关闭流.

这是我正在做的事情:

Response response = target.queryParam("start", startIndex)
   .queryParam("end", end)
   .request()
   .accept(MediaType.APPLICATION_XML)
   .header(authorizationHeaderName, authorizationHeaderValue)
   .get();

String xml = response.readEntity(String.class);
ourLogger.debug(xml);


MyClass message = response.readEntity(MyClass.class); //throws IOException
Run Code Online (Sandbox Code Playgroud)

Pau*_*tha 9

您可以使用Response#bufferEntity(),这将允许您多次读取实体流.

Response response = ...
response.bufferEntity();
String s = response.readEntity(String.class);
MyEntity me = response.readEntity(MyEntity.class);
response.close();
Run Code Online (Sandbox Code Playgroud)