You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用k6发送Content-Type为application/json且内容长度为0的POST请求

在k6中发送Content-Length为0的application/json空体POST请求

要实现发送**空请求体(Content-Length=0)**且请求头Content-Type为application/json的POST请求,你需要手动指定Content-Length头为0——因为k6的http.post方法在请求体为空时不会自动添加这个头,导致服务器返回411错误。

正确的实现方式

直接在请求头中显式设置Content-Length: '0',同时请求体传空字符串:

let res = http.post(url, "", {
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': '0'
  },
});

或者使用更底层的http.request方法,效果完全一致:

let res = http.request('POST', url, '', {
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': '0'
  },
});

为什么之前的写法无效?

  • 传{}:k6会将空对象解析为表单数据,不会触发Content-Length头的设置
  • 传null:k6会直接忽略请求体,不发送任何与请求体相关的头
  • 传""(未手动加Content-Length):k6默认不会为纯空字符串请求体添加Content-Length头,服务器因此判定请求不完整

而你用JSON.stringify({})生成的是"{}"(内容长度为2),并非真正的空体,只是绕过了411校验,但不符合你“内容长度为0”的核心需求。

内容的提问来源于stack exchange,提问作者RMcM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 21:43:14