我现在正在做的是导致:
java.io.IOException: stream is closed
在第二个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
/您可以使用Response#bufferEntity()
,它允许您多次读取实体流。
Response response = ...
response.bufferEntity();
String s = response.readEntity(String.class);
MyEntity me = response.readEntity(MyEntity.class);
response.close();
在您使用readEntity()
读取实体后,读取的结果将被缓存,并且可以通过调用getEntity()
获得。这些信息并没有真正回答OP的问题,但我认为这是有用的信息。