当content-length超过1024时,Postman无法从Nodejs获得响应

vpfxa7rd  于 5个月前  发布在  Postman
关注(0)|答案(1)|浏览(86)

我正在用Nodejs构建一个简单的API
我想回应一些令牌和它的相当长
这是我的代码

router.get("", (req: Request, res: Response, next: NextFunction) => {
  // res.removeHeader("Content-Length");
  return res.status(200).send({
    message: "HelloWorld",
    token:
      "{long text}",
  });
});

字符串
它一直显示错误Parse Error: The server returned a malformed response
我发现当内容长度超过1024时,它不能显示
但是当我使用curl时,无论内容长度是多少,我仍然得到响应。

更新

我用compression
app.use(compression());
当我把它取下来的时候,我得到了回应,但我仍然不知道为什么。

k3fezbri

k3fezbri1#

我相信您遇到的问题与在Express应用程序中使用压缩中间件有关。压缩中间件(例如压缩包提供的中间件)通过在将响应体发送到客户端之前压缩响应体来减少带宽使用。
“解析错误:服务器返回了格式错误的响应,”可能是因为客户端(或中间服务器)由于内容长度不正确而无法正确解析响应。
以下是一些你可以考虑的事情:

  • 删除内容长度修改:
  • 压缩中间件配置:
const compression = require('compression');
const express = require('express');
const app = express();

app.use(compression());

字符串

  • 检查 curl 响应:

如果curl可以正确接收响应而不考虑Content-Length,则问题可能特定于某些客户端或服务器如何处理压缩响应。

  • 更新压缩中间件:

相关问题