我有InputStream
一些数据无穷无尽,我想返回这些数据以响应GET
HTTP 请求。我希望我的 Web/API 客户端可以无休止地读取它。我怎样才能用 JAX-RS 做到这一点?我正在尝试这个:
@GET
@Path("/stream")
@Produces(MediaType.TEXT_PLAIN)
public StreamingOutput stream() {
final InputStream input = // get it
return new StreamingOutput() {
@Override
public void write(OutputStream out) throws IOException {
while (true) {
out.write(input.read());
out.flush();
}
}
};
}
但是内容不会出现在客户面前。但是,如果我添加OutputStream#close()
,服务器会在那个时候提供内容。我怎样才能使它真正可流式传输?