我现在正在做的是产生一个:
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
答案 0 :(得分:7)
/您可以使用Response#bufferEntity()
,这将允许您多次读取实体流。
PrintStream out = new PrintStream(new FileOutputStream("/home/nadhmanovic/Bureau/output.txt"));
System.setOut(out);
使用Response response = ...
response.bufferEntity();
String s = response.readEntity(String.class);
MyEntity me = response.readEntity(MyEntity.class);
response.close();
读取实体后,读取结果将被缓存,并且可以调用readEntity()
。这些信息并没有真正回答OP的问题,但我认为这是有用的信息。