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

编程入门 行业动态 更新时间:2024-10-23 21:40:35

Controller接收Postman的raw参数时,属性值全部<a href=https://www.elefans.com/category/jswz/34/1771092.html style=为空"/>

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

更多推荐

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

本文发布于:2023-12-03 17:04:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1656886.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:为空   属性   参数   Controller   Postman

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!