超文本传输协议响应在数据存在时使用分块编码 您所在的位置:网站首页 setstatus命令 超文本传输协议响应在数据存在时使用分块编码

超文本传输协议响应在数据存在时使用分块编码

2023-04-15 06:36| 来源: 网络整理| 查看: 265

我有一个Web服务,当被调用时,可能会也可能不会将正文与响应一起发送回。出于某种原因,每当没有数据时,Content-Llong标头就会出现,但是当我发回正文时,会出现Transtrans-Encode:分块标头而不是Content-Llong标头。事实上,发送的请求是分块的,但我不一定需要响应像我们希望的那样有效负载尽可能小。

正如下面的代码所示,我尝试过在数据发送回时强制设置内容长度,但即便如此,响应仍然没有Content-Llong标头。我读到过Transtrans-Encode:分块标头的存在会覆盖任何COntent-Llong标头,但我不知道如何删除Transtrans-Encode标头,甚至不知道为什么它首先会在那里。

这是我对新请求的回调:

@Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setStatus(200); String mac = req.getHeader("x-kcid"); String cmd = getCache(mac); if (cmd != null) { writeToStream(resp, cmd, "text/plain"); clearCache(mac); } }

这是实际写入响应的方法:

private static void writeToStream(HttpServletResponse resp, String msg, String contentType) throws IOException { resp.setContentType(contentType); resp.setContentLength(msg.getBytes().length); resp.getWriter().write(msg); }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有