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

为何单元测试正常但Postman调用时[FromBody]string json参数为null?

这种情况我之前踩过好几次坑!结合你说的「单元测试调用正常但Postman传参始终为null」的现象,大概率是Postman的请求配置没和你的API要求匹配,我整理了几个高频排查点,你可以挨个试:

1. 确认请求体格式与Content-Type头匹配

  • 先看你的API是不是要求接收JSON格式的请求体(比如Java Spring里用了@RequestBody注解),如果是,Postman里必须这么设置:
    • 切换到「Body」标签,选择「raw」格式,右侧下拉框一定要选「JSON」(别选成Text、JavaScript或者其他)
    • 手动添加请求头 Content-Type: application/json —— 有时候Postman自动生成的头可能带多余后缀(比如application/json;charset=utf-8),部分后端框架对这种格式的解析会出问题,手动写纯application/json试试

2. 检查JSON参数的准确性

  • 核对Postman里的JSON键名和API接口的参数名完全一致(包括大小写!很多后端框架默认大小写敏感),比如API里的参数是userNickname,你在Postman写成usernickname,后端就会解析为null,而单元测试里你肯定是严格对应了的
  • 检查JSON语法:有没有漏写逗号、引号不配对、多写了括号?哪怕一个小错误都会导致后端解析失败,直接返回null

3. 排查请求头的潜在干扰

  • 虽然你说排除了安全请求头,但可以暂时去掉所有非必要请求头,只保留Content-Type,测试是否能正常获取参数,之后再逐个加回头排查
  • 确认Accept头是不是设置为application/json,有些后端会根据这个头判断返回格式,但也可能影响请求体的解析逻辑

4. 检查Postman变量是否异常

  • 如果你在JSON参数里用了Postman的环境变量/全局变量(比如{{userId}}),先确认变量是否有有效值,或者直接把变量替换成固定值测试——如果变量未定义或为空,传参自然是null,而单元测试里你用的是固定值所以没问题

5. 查看Postman实际发送的请求内容

  • 打开Postman左下角的「Console」,查看发送的请求体和你在编辑框里写的是否完全一致。有时候Postman会自动转义字符,或者因为设置问题发送了空请求体,这种情况下后端肯定拿不到参数

如果排查完这些还是有问题,可以把你的API参数绑定代码(比如后端接收参数的注解)或者Postman请求的截图贴出来,能更快定位问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:08:10