我有一个REST服务器应该作为流发送纯文本输出,但是当我使用Postman或Chrome进行REST调用时,我在进程结束时立即获得整个输出而不是获取流。
这是我的REST服务器,灵感来自this article:
@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毫秒看一次输出。
我的实施有问题吗?
或邮差和Chrome无法显示流媒体输出?
注意:由于技术原因,我仍将Postman用作Chrome应用。
我在使用服务器发送事件时遇到了同样的问题,我已经在linux机器上使用了cURL。
我相信windows会有一个替代卷曲。