当前位置:首页 > 编程笔记 > 正文
已解决

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

来自网友在路上 175875提问 提问时间:2023-10-27 04:54:39阅读次数: 75

最佳答案 问答题库758位专家为你答疑解惑

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的朋友们一定要注意!

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Controller接收Postman的raw参数时,属性值全部为空":http://eshow365.cn/6-25688-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!