私が今していることは、次の結果になります。
Java.io.IOException: stream is closed
最初の読み取り後にストリームを閉じるため、2番目の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の質問に実際には答えていませんが、追加するのに役立つ情報だと思いました。