我写了一个使用Jersey的服务。在返回Response对象的最后一个类中,我有:
Stream<Revision> revisionss = dataSourceHandler.getRevisions( .... );
StreamingOutput stream = os -> objectHistoryWorker.revisionsTransfer(revisions, os);
return Response.ok(stream).build();
这会获得Revision
个对象流,将流转换为StreamingOutput
,然后将其发送到Response
。
我正在尝试编写集成测试来测试它,我希望看到Response
内部的内容。换句话说,我想知道诸如
Revision
个对象Revision
对象是否包含正确的信息我遇到的问题是它是OutboundJaxrsResponse
,并且不支持readEntity()
方法。
它有方法会返回它是否通过(即状态代码200),但我似乎无法找到实际读取响应内容的方法。
有没有办法获取这些信息?
(预期的响应内容将采用Json格式)
答案 0 :(得分:0)
类org.glassfish.jersey.message.internal.OutboundJaxrsResponse
确实支持getEntity()
。
如何以Java字符串形式获取响应内容。由此,我确定您可以算出如何将其读取为Json或XML ....
private String entity( Response response ) throws WebApplicationException, IOException
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
StreamingOutput output = (StreamingOutput) response.getEntity();
output.write( baos );
return baos.toString( "UTF-8" );
}