get 加body体传参

Params 传参与 Body 传参的区别 在进行接口测试时,正确地传递参数对于确保请求的有效性和安全性至关重要。 阅读详情

get 加body体传参

场景:

        做业务的时候经常会遇到这样的场景,比如传统业务查询的时候,get 请求但是需要加好几个请求过滤参数,在加上分页的话,参数的确有点多,
     @ RequestParam (用此注解把请求普通参数绑定在控制的方法上),  看起来不美观,写起来麻烦,感觉很low如果用一个对象,或者map接收多好,
     干净又利落。

为啥这么做?可以实现吗?

 1.问题在举的场景里面已做了简单的分析
 2.首先官方不推荐这样做,但是http(基于tcp的超文本传输协议)并没有规定,get 请求不能加body
 3.大家最关心的问题来了,能否实现,的确能实现,而且spring是支持的

怎么去实现?

  1. 用对象或者map接收参数,我们想到的就以 @RequestBody 注解以json 体的形式接收
  2. 需要注意的是此处要用 @RequestParam 注解来接收对象和Map参数对象
  3. 请求方式仍然是 get

常见的报错 ?

  1. 返回状态码 400(Bad Request)
    答: 报着错误就是传参错误。
    a. 比如接收的实体对象字段不一样
    b. 传的参数格式不一样,需要的json
    c.或者是中间件的限制,比如tomcat8.5 默认| 不支持 {},要改为|{}

实现案例

  1. 后台实现 (伪代码)
   @GetMapping("/路径")
      A:   public Dto  queryDataList(@RequestParam Map<String,Object>() params ){
               return new Dto();
          }
     B:      public Dto  queryDataList(User ){ // 无注解
               return new Dto();
          }
      Dto:(数据分装传输对象)
      queryDataList:(方法名)
     @RequestParam Map<String,Object>() params : (注解传参)`
     @GetMapping("/路径")
  1. postman 测试结果(postMan版本过低测不了,get方式 body 是灰色的。选新的版本)
    body体的选择,选form—data 表单形式传参,如果前端不知道怎么传,直接看Headers 头信息的数据内容

思考:

尽管这样解决了get 加body 体传参,但是仍建议用post 加body
eg : get
params :

             {
               key : value,
               key2: value2,
             }

value 与value2 只能 是简单的引用类型,不能是复杂的嵌套,或者对象

下面的就不可以
get
params

{
      name: "",
      createTime: " ",
      type: {
                [{  level: "",
                   name: [ value,value2]
                  },
                  
                  { levle:"",
                   name: [ value,value2,value3]
                  },
                  
                  { level: "",
                  name: [ value]
                  }
           ]
       }
}

这个就是对象里面嵌套一个数组对象,get 此时就无能为力,只能报400,所以说还是用原配的好。

总结

get 加Body 传参的实质就是,提交个表格对象,form表单的形式绑定

【立创开源】太阳能板充电方案单节3.7v锂电池充电 一直对太阳能板感兴趣,老是感觉充电好麻烦,要是放在那里就可以自己充电多好,所以尝试做了一个太阳能充电板。因为这几天都是阴天,所以测试效果不太好,但是下雨天也是能充电的,但是基本只能维持电量不掉,电压差不多4.2v以上,电流只有2mA。中午出太阳的时候,隔着玻璃放在太阳下测试,电流有12mA以上。能充起一点点电。等大晴天看一看能不能达到卖家说50mA。┗( T﹏T )┛感觉达不到。这个东西只能当一个玩具(;′⌒`)。不过如果汽车上一些行车记录仪加一个这个,汽车经常在太阳下停车,可能再也不用充电了。 阅读详情

相关推荐

机器学习预测股票收益(一)之随机森林模型

机器学习预测股票收益(一)前言一、导入库和数据二、处理数据以及计算特征变量三、使用随机森林回归预测股票收益1.构建训练集和测试集2.查看预测结果四、根据预测结果构建long-short投资组合1.定义投资组合函数2.定义绩效分析函数五、引入Fama-French Factor六、投资组合表现1.超额收益表现2.多因子回归总结 前言 本文将使用Python整理1927-2020年所有美国上市公司股票数据。根据历史收益以及交易量,使用随机森林,支持向量机以及神经网络等机器学习方法预测股票收益。最优结果构建的资产

weixin_47174968的博客 1万+

get请求使用body传参

最近一个项目,客户提供的接口API规定使用get请求访问接口,参数放到body中传递。虽然很奇葩,但是客户接口这么做的,我们也只能给安排了。 调查了一下使用XMLHttpRequest是不行的,也就意味着ajax没戏。试了一下nodejs的request模块,是可以的。 废话不多说,看代码吧。 前端: var request = require('request'); var url="...

fz250052的博客 5万+

无人机芯片模块技术要点分析

恶劣环境下信号稳定性:无人机在恶劣环境下工作时,遥感系统采集的信号往往很不稳定,视频信号处理芯片需要具备强抗干扰能力,能辨别脉冲脉宽为50ns以上、幅度为0V~4.5V的输入信号。这种架构能兼顾强大的运算能力和灵活的接口控制。芯片小型化:麻省理工学院的研究人员已设计出仅20平方毫米的微型芯片,可处理无人机飞行所需的惯性数据和相机图像,为微型无人机的发展奠定了基础。光子集成芯片(PIC) :研究显示,与电子芯片相比,光子计算芯片在延迟、计算容量和能效上都有数量级的提升,有望解决当前无人机系统的计算瓶颈。

YUNZHUO666的博客 1405

关于在GET请求中使用body

故事还得从一个bug说起。今天有人问我,为什么发到后端的请求400了,我说肯定是参数不对,你去检查检查GET、POST之类的方法写没写对,要么就是字段没对上,无非是这几个问题。然后他说检查过了,没问题啊;我不太相信,但是看了看前端发送的请求,好像确实没啥问题: 我说既然这样,那肯定是后端写错了,但后端说他已经用postman测过了,肯定没问题。这就很有意思了。于是我要来了后端的代码: 不出所料,...

HermitSun的博客 6万+

交叉验证选型指南:k折、留一法、时序与分层CV实战决策

交叉验证是评估机器学习模型泛化能力的基础技术,其核心在于通过系统性数据重划分,缓解有限样本对真实分布估计的偏差。原理上,它通过控制训练-验证数据的独立性与代表性,诊断过拟合风险并提升性能指标的稳定性。技术价值体现在避免单次切分导致的结果偶然性、数据利用低效及验证集污染等问题。典型应用场景涵盖分类任务中的类别不平衡处理、时间序列预测的因果约束、用户行为建模中的数据泄露防控等。本文聚焦k折交叉验证、留一法、时间序列交叉验证与分层抽样等主流方法的适用边界与工程落地要点,结合过拟合诊断和泛化能力评估两大热词,提供可

dienangpiao2051的博客 477

深信服技术认证“SCCA-C”划重点:信服云托管云

该认证包括云数据中心基础、云计算基础、云计算关键技术、云计算交付和运维体系、云计算技术商业应用、信服云托管云、深信服超融合HCI、深信服桌面云aDesk、深信服分布式存储EDS、深信服应用交付AD。学习并获得SCCA-C认证后,可以具备深信服产品功能原理与实践,能够根据业务需求,协助完成云产品方案落地与实施;能够根据业务需求,完成深信服云产品的部署和管理的基本工作。为帮助大家更加系统化地学习云计算知识,高效通过云计算工程师认证,深信服特推出“SCCA-C认证备考秘笈”,共十期内容。

sangfor_edu的博客 614

记录--get请求参数放在body中?

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1、背景 与后端对接口时,看到有一个get请求的接口,它的参数是放在body中的 ******get请求参数可以放在body中?? 随即问了后端,后端大哥说在postman上是可以的,还给我看了截图 可我传参怎么也调不通! 下面就来探究到底是怎么回事 2、能否发送带有body参数的get请求 项目中使用axios来进行htt...

林恒的博客 6479

ks-快手滑块验证码-Js逆向

本文分析了快手滑块验证码的破解过程。首先通过抓包找到验证码背景图接口,发现需要动态获取captchaSession参数。然后深入分析验证流程,发现verifyParam参数被加密处理,需要追踪其生成逻辑。文章详细解析了加密参数c的构成,包括captchaSn、滑动距离、轨迹信息等,并指出轨迹验证较为严格。最后通过对比浏览器和本地生成的加密值,确认加密逻辑正确,但指出轨迹生成仍需优化。作者建议参考相关文章深入分析轨迹逻辑,并提供了验证成功的截图作为参考。

2302_76420666的博客 1879

#GET携带Body参数发送请求 #SpringBoot整合Feign #SpringBoot整合RestTemplate #RestTemplate拓展Get请求携带Body参数

#GET携带Body参数发送请求 #SpringBoot整合Feign #SpringBoot整合RestTemplate #RestTemplate拓展Get请求携带Body参数

SirHongGe的博客 4998

Qt图表库三选一:Qwt、QChart、QCustomPlot实战性能对比与避坑指南

本文深入对比了Qt开发中三大主流图表库Qwt、QChart和QCustomPlot的性能与适用场景。通过实测数据展示各库在渲染效率、内存占用和功能特性上的差异,并提供针对不同项目需求的选型建议和集成避坑指南,帮助开发者高效选择最适合的Qt图表解决方案。

weixin_33691700的博客 449

5、高级综合技术:从调度到优化的全面解析

本文深入解析了高级综合技术,涵盖从控制/数据流图构建、调度算法、分配绑定策略到编译器优化的全流程。通过案例分析和对比,探讨了不同优化策略对性能和资源利用的影响,并总结了关键要点及未来发展趋势,为高效利用FPGA实现数字设计提供了全面指导。

night的博客 119

前端get请求为什么不能在body中传参

,于是在网上找了找这个问题的原因,发现是后端在controller加了@RequestBody这个注解,所以请求参数必须要放在body中,可是我使用doc.html时,他会将get的参数自动放到path上,后来查找原因才发现。公司后端小伙伴写了这样一个接口:请求类型为application/json的get接口,然后我按照平时调接口的方式调接口,发现报500了。后来发现他将参数放在了body中,于是我将前端get请求参数也放在body中,继续调接口发现我传在data里面的参数在浏览器中丢失了。

qq_42981449的博客 3005

题解:洛谷 P14357 [CSP-J 2025] 拼数

等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。小 R 想知道,在他所有能拼成的正整数中,最大的是多少。你需要帮助小 R 求出他能拼成的正整数的最大值。小 X 给了小 R 一个字符串。输出一行一个正整数,表示小 R 能拼成的正整数的最大值。中的任意多个数字,按任意顺序拼成一个正整数。,表示小 X 给小 R 的字符串。#普及-# #其他排序#洛谷:[P14357。

团爸讲算法 1398

一文搞懂get、post传参

(4)用@RequestParam注解修饰的字段前端必须有对应的参数传过来,用@RequestBody修饰的类,前端至少要传一个空的json串,json串内容不一定需要和类对应,json串中只要有类的字段,后端的类就会从中取出对应的字段并赋值。(3)不管是@GetMapping还是@PostMapping,除了@RequestBody注解对应的参数是通过json在body里面传参数外,@RequestParam注解和没有注解都是在url中传参数.@RequestParam的使用如下,具体到参数类型的字段。

到底要什么姿态,才不会显得我在使坏。 7703

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

前端js向axios的get请求的body中添加json参数,深度解析

结论 先说结论:在浏览器环境下,基于xhr通信的axios的get请求中是无法在body中传参的。 注意:要达到以上比较绝对的结论,需要以下几个条件 1.处于浏览器环境中 2.后端必须是严格的从get请求中获取body中的参数 3.xhr通信的规范不会变动 4.axios库继续以xhr(即XMLHttpRequest)为底层进行通信 其实后两点很大概率不会发生变动,因此可以肯定此结论在长时间内都会适用,当然如果看了后面的详解,你会自然的扩展出:在浏览器环境下,get请求中是无法在body中传参

qq_37027534的博客 3万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

日常问题随笔-RestTemplate发送Get请求通过body传参问题

问题出现 今天在对接其他部门的接口时,发现对方提供了一个GET请求,但是参数却要求通过body传递json格式的数据。这可难住我了,GET请求还能通过body传递参数吗?带着疑问,先试一下吧。我们项目用的RestTemplate,我想起了RestTemplate的exchange方法有个参数HttpEntity,会不会是这里可以传参数进去呢?迅速写了代码 public static String getForJson(String url, Map<String,Object> dataValu

houwanfeimark的专栏 4901

axios之get传参

最近遇到了get传参的几种格式,想在这里总结一下,有不对的可以告诉我,我会改的~ 后台说:以url的形式传参 先上图吧:看看后台的需求 这个是通过每页条数和页码获取用户列表,一般传参比较少的都是以url的形式传过去的。 下面是代码: axios .get('/api/Login/GetUserList', { params:{ pageSize:_this.pageSize, ...

Lemontree_fu的博客 3万+

我是如何实现HttpGet请求传body参数的!

前言 最近调用公司项目一个接口时,发现该接口是一个Get请求,入参在Body 中(json格式)。场景如下:A服务需发送http请求调用B服务的接口(该接口为Get方式,入参是一个json字符串在body中传递) 当我看到这个接口的时候,感觉好奇怪(MMP,干嘛不用POST请求。Get就get,请求还放Body中,心里有些不爽)尽管心里不爽,但是也只能默默接受,撸起袖子 “干” 就完了! 实现过程: 首先官方不推荐这样做,但是http(基于tcp的超文本传输协议)并没有规定,Get 请求不能加body 一.

余生一个帆的博客 3万+

关于在GET请求中使用body【不建议在GET请求中使用body】

故事还得从一个bug说起。今天有人问我,为什么发到后端的请求400了,我说肯定是参数不对,你去检查检查GET、POST之类的方法写没写对,要么就是字段没对上,无非是这几个问题。然后他说检查过了,没问题啊;我不太相信,但是看了看前端发送的请求,好像确实没啥问题: 我说既然这样,那肯定是后端写错...

chijue3990的博客 1万+

HTTP参数类型中的Query和Body参数

http参数类型,重点讲诉了 query查询参数和 body请求体参数,这两个常见的参数,顺带讲诉了 path路径参数。给了几个例子

weixin_42479421的博客 2万+

C# 接口Get请求带Body

这几天在调用第三方的接口遇到了GET请求并且还要带有body参数,并且参数类型还得是Json,在我的记忆力GET都是URL传参,网上找了好多方法都不行。用Postman调用可以请求到数据,但是C#代码怎么弄都不行,用Postman生成得代码也不行。一直Http verb GET does not support body。之后找到了一个博文。分享给大家。 try { ///URL接口地址 HttpWebRequest request = (HttpWebRequest)WebRequest.

weixin_44225369的博客 5068

网络/Network - 应用层 - HTTP - GET 通过 Body 来发送数据 - 学习/实践

学习了解http的get请求方法的用法及不知道的信息.

"代码"的日常搬运 7268

前端post请求中body和query传参的区别

前端发送请求最常用的是get请求还有post请求 get请求只能传query参数,query参数都是拼在请求地址上的 post可以传body和query两种形式的参数 如下: /* 编辑项目列表 */ export function editProjectList(params) { const url = '/support/project/update'; return request({ url: url, method: 'put', data: params /

yinge0508的博客 3万+

axios使用get方法传在body中传递参数

1、GET 是一定支持 传递 Body 的。 如果在很多年前,我也认为GET传递Body不合理,但是随着rustful的流行,你会发现,GET传递Body不仅合理,而且还非常必要。以我们公司目前的项目来说,有如下预定,数据交换统一使用JSON,原因在于,JSON格式的数据要更加清晰易懂,各个前后端语言都可以支持,更主要的一点是JSON解析后,是支持数据类型的。 举一个实际的例子,订单前置校验接口,这个接口是要下单前进行校验的,一次性告诉你,这个订单能不能下单(是否上架,是否可售,该区域是否可售,库存是否充足

2万+

RestTemplate的请求参数传递问题 RestTemplate发送Get请求通过body传参问题

RestTemplate能大幅简化了提交表单数据的难度,并且附带了自动转换JSON数据的功能,但只有理解了HttpEntity的组成结构(header与body),且理解了与uriVariables之间的差异,才能真正掌握其用法。 此文章主要写了 Get 和 Post请求的 ForObject ,ForEntity 和exchange这三种方式的提交数据 话不多说 直接上代码 在启动文件中 配置resttemplate的Bean 如果是get请求中携带body中的json数据 这样注入是会报错的 ,

fenduo的博客 3万+

axios中post的body与query传参区别及使用总结

axios中post的body与query传参区别及使用总结

下雨打伞干嘛的博客 1万+

Params与Body传参的实战选择:何时用GET,何时用POST?

本文深入探讨了Web开发中Params与Body传参的实战选择,重点分析了何时使用GET请求,何时使用POST请求。文章从安全性、数据量、幂等性及缓存等核心维度出发,结合具体场景,为开发者提供了清晰的决策指南,强调敏感信息应避免通过URL传递,并遵循HTTP方法的语义设计接口。

weixin_29291185的博客 357
上一篇: Oracle row_number() over()函数
下一篇: jdbcTemplate queryForMap与queryForList区别
WindwardBird
博客等级 码龄7年 19粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值