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

@modelattribute注解用postman测试怎么传参_接口测试之问题挖掘

在平常的测试工作中,我们往往需要了解和理解前后端代码,这样能够很好地提高测试效率、丰富我们的案例。其中,在测试http接口时,测试工程师就需要去了解用什么样的编码格式调用接口传递参数。下面就来介绍下SpringBoot中的@RequestParam和@RequestBody两个注解,帮助我们更好的测试带有这两个注解的http接口。 1.拥有不同的参数

1)@RequestParam总体上来说,该注解类拥有三个参数:

    required  表示是否必须,默认为  true。     defaultValue  可设置请求参数的默认值。     value  为接收url的参数名(相当于key值)。

2)@RequestBody注解只拥有一个参数:

    required 默认为 true,即对象中的属性必须有一个要传 2.处理不同的编码格式          @RequestParam用来理  Content-Type  为  application/x-www-form-urlencoded  编码的内容。而注解@RequestBody一般用于处理非  Content-Type: application/x-www-form-urlencoded 编码格式的数据,比如: application/jsonapplication/xml 等类型的数据。 3.例子 1)用Content-Type:application/x-www-form-urlencoded 前端请求: 2b11d32a004a706493384c3996d0858e.png 后端响应1:传参对应,没有任何注解, ba8cf84c0d5239eee5a1c875758d0899.png f806fa527f402decbfbe61331ac173aa.png 后端响应2:参数添加@RequestParam注解 4bfa435c866686b4e2879ad2a2db75af.png 1d782da624c7507780cb69ac0910ce1e.png 后端响应3:参数添加@RequestBody注解,虽然成功了,但是接收参数不正确。 c622e573631db88a2d4ec80abeefe8c8.png 8e9902499d80a46736ed12db9086eaee.png 后端响应4:参数用@RequestBody,但入参是一个Map,报错。 4b20b2cd07a1b1b540624b8c2aef8723.png Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported] 结论:当前端以application/x-www-form-urlencoded的格式传参时,后台可以使用@RequestParam或者不适用任何注解获取参数。后台不可以使用@RequestBody注解获取参数。 2)Content-Type:application/json 前端请求: 623e533c0d5042964c866ad2fa4453a0.png 后端响应1:不加任何注解,接收到的参数都是null 99dd34cf8c08098cba965959a9c0e4c5.png 1df270865b18af4384b2392aefe33dea.png 后端响应2:参数添加@RequestParam注解,报错: Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'name' is not present] 后端响应3:参数添加@RequestBody注解,入参为Map 937d804795a10af4bacda51a30513aac.png 结论:当前端以application/json的格式传参时,后台支持@RequestBody注解,入参为Map或者一个javabean的形式。

相关文章:

  • c++ 数据太长赋给string变量后得到的数据不全_Python3基础语法--数据类型
  • 将一列json_如何用 awk 命令提取 JSON 数据的值列
  • 数据仓库 桥接表_数据仓库-维度处理-读书笔记(四)
  • 装完nvme固态经常蓝屏_方案解决:NVMe SSD安装Win7蓝屏0x0000007B快速解决方案
  • 上的img表示什么_html元素img之间会有空隙的原因以及如何消除
  • netty代理转发_lemon: 基于Netty的微服务网关,实现Dubbo、HTTP等代理转发!
  • mysql自动备份快结束很卡_mysql备份慢以及自动重启问题——调整NUMA
  • mysql 数据库表属性默认_【学习之Mysql数据库】mysql数据库创建表的属性详解
  • perl mysql utf8_mysql – Perl字符串操作和utf8 / unicode
  • docker redis mysql_Docker安装常用组件(mysql,redis)的方法
  • mysql 检查约束 替代_MySQL检查约束
  • mysql触发器修改表分区_MySQL 触发器例子(两张表同步增加和删除)
  • mysql索引性能极具下降_性能优化之mysql索引优化
  • mysql keepalived6_MySQL+Keepalived实现主主高可用方案
  • python install package_python install package作为另一个包的子包
  • [deviceone开发]-do_Webview的基本示例
  • “大数据应用场景”之隔壁老王(连载四)
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • codis proxy处理流程
  • Consul Config 使用Git做版本控制的实现
  • CSS 三角实现
  • CSS魔法堂:Absolute Positioning就这个样
  • github指令
  • JavaScript-Array类型
  • magento2项目上线注意事项
  • Webpack 4 学习01(基础配置)
  • 百度地图API标注+时间轴组件
  • 分布式熔断降级平台aegis
  • 入门到放弃node系列之Hello Word篇
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 微信小程序填坑清单
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 阿里云ACE认证学习知识点梳理
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (27)4.8 习题课
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (南京观海微电子)——I3C协议介绍
  • (四)库存超卖案例实战——优化redis分布式锁
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • .NET Framework杂记
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET开发不可不知、不可不用的辅助类(一)
  • .Net组件程序设计之线程、并发管理(一)
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @Bean有哪些属性
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • []C/C++读取串口接收到的数据程序
  • [3D基础]理解计算机3D图形学中的坐标系变换