我有一个REST服务器,它应该将纯文本输出作为流发送,但当我使用Postman或Chrome执行REST调用时,我会在过程结束时一次性得到整个输出而不是得到流。
这是我的REST服务器,灵感来自于这篇文章:
@GET
@Path("/stream-test")
@Produces(MediaType.TEXT_PLAIN)
public Response streamTest(){
StreamingOutput stream = new StreamingOutput() {
@Override
public void write(OutputStream os) throws IOException, WebApplicationException {
Writer writer = new BufferedWriter(new OutputStreamWriter(os));
for (int i=1; i<=10; i++) {
writer.write("output " + i + " \n");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
writer.flush();
}
};
return Response.ok(stream).build();
}
输出行都同时显示。我想每500毫秒看到一个输出。
我的实现有问题吗?
还是Postman和Chrome无法显示流式输出?
注意:由于技术原因,我仍然使用Postman作为Chrome应用程序。