当前位置: 首页 > article >正文

Controller接收Postman的raw参数时,属性值全部为空

Controller接收Postman的raw参数时,属性值全部为空

情景再现

在进行业务代码的编写过程中,使用Postman等工具调用Controller接口时,发现属性值全部为空

后端代码如下:
Requset对象为:

public class QuerySkuRequest {
      private String storeCode;
      private String skuOrSn;
      private Integer type;

      // 构造方法 setter/getter 等方法省略
}

Controller:

@Api(value = "ScanProduct",tags = "扫一扫查询商品详情")
@RestController
@Slf4j
@RequestMapping("/xpos/scanProduct")
public class ScanProductDetailsController {

  @RequestMapping(value = "/querySku",method = RequestMethod.POST)
  @ApiOperation(value ="查询商品详情",notes = "查询商品详情")
  public QuerySkuResponse querySkuOnSn(@RequestBody QuerySkuRequest request){

    log.info("扫一扫查询详情信息请求:{}",request);
    // 其他业务逻辑
  }

}

PostMan的Header中设置如下行:
在这里插入图片描述

PostMan的Body,选择raw格式:
在这里插入图片描述

发送之后request对象的属性结果:
在这里插入图片描述

检查问题

  1. 是否是属性值名称填写有问题,无法映射?

直接通过fastjson下的@JSONField(name="")直接写明映射

  1. 更换x-www-form-urlencoded方式请求,是否是忘记写@RequestBody

controller中不写@RequestBody默认是通过表单方式提交,不是采用json,因此需要添加@RequestBody

猜想

是不是@RequsetBody失效?
可能是@RequsetBody注解的问题

解决

最终发现@RequestBody引包错误!
应该要引

import org.springframework.web.bind.annotation.RequestBody;

而swagger同样有一个同名注解:

import io.swagger.v3.oas.annotations.parameters.RequestBody

写在同一个地方,都不会报错!!!
在引入了swagger的朋友们一定要注意!


http://www.kler.cn/a/105276.html

相关文章:

  • Python:控制台输入密码passwod的方法
  • 全面解析优化企业Microsoft 365网络的加速方案
  • 数据结构笔记——树和图(王道408)(持续更新)
  • 【每日一题Day359】LC2520统计能整除数字的位数 | 数学模拟
  • php学习笔记
  • Ubuntu环境下DOSBOX的配置
  • 【linux系统】服务器安装Pycharm
  • Fiddler抓包VSCode和探索
  • 基于Pytorch的驾驶员分心行为实时检测
  • 对比Vue2和Vue3的自定义指令
  • 2023-10-26 用C语言实现一个大整数加法
  • PROFINET通信介绍
  • 【机器学习】模型平移不变性/等变性归纳偏置Attention机制
  • redis搭建集群-多实例快速搭建
  • uniapp解决iOS切换语言——原生导航栏buttons文字不生效
  • 力扣刷题 day56:10-26
  • 2023CSPS 种树 —— 二分+前缀和
  • 小工具推荐:FastGithub的下载及使用
  • 尚硅谷大数据项目《在线教育之实时数仓》笔记003
  • BES2700 蓝牙协议之RFCOMM通道使用方法