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

如何在Postman中获取multipart/form-data类型POST请求的大小

解决Postman中multipart/form-data请求体大小获取问题

问题原因

预请求脚本执行时,Postman还未读取请求中的文件内容,也未完成multipart请求体的组装,所以pm.request.size()会返回body大小为0,Content-Length显示为<calculated when request is sent>——这是Postman的正常行为,该字段仅在请求发送前才会计算填充。

解决方案

1. 获取请求发送后的真实请求体大小(最可靠)

在测试脚本(而非预请求脚本)中添加以下代码,请求发送完成后即可拿到实际计算出的Content-Length:

const contentLength = pm.response.request.headers.get('Content-Length');
console.log(`实际请求总大小:${contentLength} 字节`);
console.log(`实际请求body大小:${contentLength - pm.request.size().header} 字节`);

测试脚本在请求发送后执行,此时Postman已经完成请求体组装和大小计算,能得到准确数值。

2. 预请求阶段预估大小(仅支持文本字段)

如果需要在发送前预估,只能手动计算文本字段的大小,文件部分因Postman预请求环境无法读取本地文件的实际字节数,无法准确计算:

let bodySize = 0;
const boundary = pm.request.body.boundary;
const boundaryLength = `--${boundary}\r\n`.length;

// 遍历所有form-data文本条目
pm.request.body.formdata.each(item => {
    if (item.type === 'text') {
        const fieldHeader = `Content-Disposition: form-data; name="${item.key}"\r\n\r\n`;
        bodySize += boundaryLength + fieldHeader.length + item.value.length + '\r\n'.length;
    }
});

// 加上结束分隔符的大小
bodySize += `--${boundary}--\r\n`.length;

console.log(`文本部分预估body大小:${bodySize} 字节`);
console.log(`预估总大小:${bodySize + pm.request.size().header} 字节`);

注意:此方法仅能得到文本字段的预估大小,最终真实大小仍需以测试脚本中拿到的Content-Length为准。

版本适配

你的Postman 10.18.1版本完全支持上述两种方法,无需升级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:16:10