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

这篇具有很好参考价值的文章主要介绍了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中设置如下行:
Controller接收Postman的raw参数时,属性值全部为空,postman,lua,测试工具

PostMan的Body,选择raw格式:
Controller接收Postman的raw参数时,属性值全部为空,postman,lua,测试工具

发送之后request对象的属性结果:
Controller接收Postman的raw参数时,属性值全部为空,postman,lua,测试工具

检查问题

  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的朋友们一定要注意!文章来源地址https://www.toymoban.com/news/detail-759123.html

到了这里,关于Controller接收Postman的raw参数时,属性值全部为空的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IDEA直接请求controller,不用postman请求http接口

    generated-requests.http工具用法 第一步:点击下面按钮,HTTP Client  第二步、生成generated-requests.http文件  第三步、更改服务的ip和端口,启动服务  请求实例: 1、post请求,body传参: 2、get请求 2.1 2.2

    2024年02月15日
    浏览(52)
  • Postman导出json v2/v2.1文件导入YAPI报错:解析数据为空

    实测总结:导入Postman Collection v1的JSON file能成功 版本环境 Postman 版本:8.11.1 YAPI 版本:1.12.0 问题解决 如果Postman能直接导出v1的JSON file就不需要继续以下步骤; 可惜Postman v8.11.1 当前版本不支持导出v1。 需要使用postman-collection-transformer工具进行转换v2 - v1 Postman官网版本转换介

    2024年02月07日
    浏览(44)
  • postman中 form-data、x-www-form-urlencoded、raw、binary的区别

    multipart/form-data:可以上传文件,以及表单键值对,最后会转化为一条信息; x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。 raw:可以上传任意格式的文本,可以上传text、json、xml、html等 1、form-data: 就是http请求中的 multipart/form-data ,它会将表单的数据处理为

    2024年03月24日
    浏览(44)
  • 在postman中使用raw纯文本格式发送POST请求成功而在python爬虫中发送POST请求失败

    在postman中是成功的 我查了很多资料,说raw是纯文本格式提交的,我又去看postman中的headers,查看content-Type中指定了格式 修改了爬虫中的headers 或者把data写出字典格式,再用json.dumps(data)转换一下

    2024年02月12日
    浏览(56)
  • postman发送json嵌套, 后端 @RequestBody 接收不到

    遇到了一个很奇葩的问题,具体是这样的: postman 通过 post 方式发送请求,请求参数是一个嵌套的json,后端是@RequestBody修饰的实体类接参的, 具体的json数据: 后端: 大家知道以上事例即可。 出现的问题是: 发送请求后,没能收到外层实体类的参数,内层的ANPR对象,一直

    2024年02月04日
    浏览(38)
  • Postman —— postman实现参数化

    什么时候会用到参数化 比如:一个模块要用多组不同数据进行测试  == 验证业务的正确性 Login模块:正确的用户名,密码 ===成功;错误的用户名,正确的密码 === 失败 postman实现参数化 在实际的接口测试中,部分参数每次发送请求时都要唯一(比如注册), 这时可采用post

    2024年02月11日
    浏览(36)
  • Postman:postman 传 Map 参数

    记录:postman发送Map参数 参考文档 postman可以传递map吗? 1、设置请求方式为Post 2、在Headers中添加Content-Type,值为application/json 3、在body中选择row,选择json数据格式,最后在下面已json的数据格式填写参数 4、最后看一下我的controller头

    2024年02月15日
    浏览(30)
  • 精通postman教程(五)postman请求参数化

    作为一名测试工程师,那么Postman绝对是大伙必备的工具之一。 在这个系列教程中,我将为大伙详细讲解如何使用Postman进行API测试。 今天我带大伙实战一番postman如何请求参数化 ,让你们快速上手这款工具。 数据参数化是Postman最有用的特征之一。你可以将使用到的变量进行

    2024年02月13日
    浏览(34)
  • Postman(2): postman发送带参数的GET请求

    示例:微信公众号获取access_token接口,业务操作步骤 1、打开微信公众平台,微信扫码登录: https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 2、打开微信开放文档,找到获取access_toekn 的接口信息: https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html 3、打开

    2024年02月01日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包