Java SpringBoot Controller常见写法

文章讲述了在Windows11环境下,使用Java、IDEA和Gitbash中的Controller接口通过CURL发送GET和POST请求时,不同数据格式下参数传递的问题。发现(String,String,HttpServletRequest)、(Tobj,HttpServletRequest)和使用注解(@RequestBody)接收参数的结果差异以及JSON格式与非JSON格式的区别。
摘要由CSDN通过智能技术生成


环境

系统: windows 11
工具: java, idea, git bash


Controller

接口常见有以下几种方式

在这里插入图片描述
其中: Tobj
在这里插入图片描述

调用脚本

我的是windows 系统,使用 git bash 窗口运行, 用 cmd 或者 power shell 会有问题

curl -X GET 'http://localhost:18011/.../testTobjBody?dateVal=dateVal&mark=mark' 
  
curl -X POST 'http://localhost:18011/.../testTobjBody' -H 'Content-Type: application/x-www-form-urlencoded' --data 'mark=mark&dateVal=dateVal'
  
curl -X POST 'http://localhost:18011/.../testTobjBody' -H 'Content-Type: application/json' --data-raw '{"dateVal":"dateVal","mark":"mark"}'

运行结果

红框标注说明是有问题

testMap(String mark,String dateVal,HttpServletRequest request)

在这里插入图片描述

testMap(Map map,HttpServletRequest request)

在这里插入图片描述

testTobj(Tobj tobj, HttpServletRequest request)

在这里插入图片描述

testMapBody(@RequestBody Map map,HttpServletRequest request)

在这里插入图片描述

testTobjBody(@RequestBody Tobj tobj, HttpServletRequest request)

在这里插入图片描述


总结

使用 (String mark,String dateVal) 、 (Tobj tobj) 和 (HttpServletRequest request) 结果一样。
GET 和 POST(application/x-www-form-urlencoded) 都获取到参数值,
POST(application/json) 获取不到参数值 。

使用 (@RequestBody Map map) 和 (@RequestBody Tobj tobj) 结果一样。
POST(application/json) 可获取到参数值 。
GET 和 POST(application/x-www-form-urlencoded) 都获取不到参数值。

使用(Map map)
三种调用获取不到参数值。


—————— 但行好事莫问前程,你若盛开蝴蝶自来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值