@RequestParam和@RequestBody使用举例

@RequestParam

可以有多个参数,使用时直接在url后面加参数或者使用请求参数

代码段:

	// RequestParam。在Uri后面接参数或使用请求参数
	@PostMapping("/queryByUnitId")
	public UnitInfo queryByUnitId(@RequestParam("unitId") String unitId) {
		UnitInfo unitInfo = queryApi.queryUnitInfoByUnitId(unitId);
		return unitInfo;
	}

调用方式(jmeter)

1、uri后面加参数

http://10.18.31.34:8002/queryByUnitId?unitId=dcn1

报文头Content-Type无论写 application/json还是application/x-www-form-urlencoded(不指定Content-Type默认值就是这个),都对请求的结果没有影响

 

2、使用请求参数

此时Content-Type必须是application/x-www-form-urlencoded(可以不指定使用默认值),如果是application/json,是无法调用的。

jmeter提供了两种方式,分别是parameter和body data,效果是一样的

请求结果

 

 如果指定Content-Type=application/json,是无法识别到请求参数的

请求返回:

{"timestamp":"2021-08-26T02:31:29.589+0000","status":400,"error":"Bad Request","message":"Required String parameter 'unitId' is not present","path":"/queryByUnitId"}

 @RequestBody

RequestBody要求请求体必须是json格式的,且一个请求只能有一个RequestBody

举例段:

使用JSONObject提供的get方法取得传入json报文中对应的key的内容

	@PostMapping("/queryByUnitId")
	public UnitInfo queryByUnitId1(@RequestBody JSONObject jo) {
		UnitInfo unitInfo = queryApi.queryUnitInfoByUnitId((String) jo.get("unitId"));
		// 下面这行的效果同上
		// UnitInfo unitInfo = queryApi.queryUnitInfoByUnitId(jo.getString("unitId"));
		return unitInfo;
	}

调用方式(jmeter)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值