jetty - Jetty 是否支持 HTTP 分块响应/传输编码?

标签 jetty embedded-jetty

我目前正在使用 Jetty 8,我想在 servlet 响应中写入几个事件(文本)。例如:

写入开始 写事件2 写入事件3 写完成

全部由\n分隔

此响应的时间范围可能不会超过 20 秒,但客户端应该在每个事件(行)发生时接收到它。我找不到任何相关文档,但我想向社区核实。

如果 Jetty 不这样做,是否还有其他 servlet 引擎可以这样做并且也可以嵌入?

顺便说一句,我尝试了以下操作,但在 servlet 返回之前没有收到任何数据,然后一次性收到了所有数据。

  resp.setContentType("text/html");
    resp.setHeader("Transfer-Encoding", "chunked");
    resp.getWriter().write("closing");
    resp.getWriter().flush();

    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    resp.getWriter().write("closed");
    resp.getWriter().flush();

编辑:必须使用\r\n 作为行终止符

最佳答案

如果每行都以\r\n 结尾,则有效

    resp.setContentType("text/html");
    resp.setHeader("Transfer-Encoding", "chunked");
    resp.getWriter().write("closing\r\n");
    resp.getWriter().flush();

    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    resp.getWriter().write("closed\r\n");
    resp.getWriter().flush();

关于jetty - Jetty 是否支持 HTTP 分块响应/传输编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41699339/

相关文章:

tomcat - 目录中的 web.xml 默认文件(用于 jetty 或 tomcat)?

jsp - 当 jar 中指定类路径时,嵌入式 Jetty 无法加载 JSP 标记库

java - Webapp 启动失败但 Jetty LifeCycle 声称 "started"

java - Heroku嵌入式Jetty端口绑定(bind)超时

java - 如何用 Jetty 修复 "Could not find necessary SLF4j logging jars"?

java - 使用 Camel Jetty 进行基本身份验证

jersey - 我如何禁用选项请求方法甚至在 dropwizard 中被处理

java - 在 log4j 配置的嵌入式 Jetty 应用程序中看不到 logback 日志

java - 无法在window 7中通过命令启动jetty服务

java - Okhttp android Websocket 和 Jetty 服务器与 SSL 的连接