【问题标题】:When making POST request with Nodejs, how to get content length of request payload?使用 Nodejs 发出 POST 请求时,如何获取请求有效负载的内容长度?
【发布时间】:2026-02-17 22:20:03
【问题描述】:

我正在使用请求库使用 Nodejs 向远程 API 发出 http 请求。

请求负载是一个普通的旧 JavaScript 对象。

我需要在请求中设置 content-length 标头,但不知道如何获取这个值?

以前我使用过 Buffer.byteLenth(requestPayload),但不适用于对象。

【问题讨论】:

  • request 模块肯定已经在设置这个了吗?如果没有,我会提交一份错误报告,因为它不会流式传输 JSON 输出。 (而且,这就是您要发送的内容......您可以按原样发送 JavaScript 对象,它必须以某种方式进行序列化。)

标签: node.js http express httprequest


【解决方案1】:

如果您依赖request 将对象转换为 JSON 序列化,那么答案就是“不要”。预测大小的唯一方法是自己序列化。

【讨论】:

  • 感谢 Evert,您完全正确。最后我们只是去掉了客户端在请求中设置 content-length 头的要求,简单多了..