HTTP四大参数类型及请求参数的方式和如何接收

HTTP 请求中4大参数类型和接收方法。

1、请求头参数head

请求头参数顾名思义,是存放在请求头中发送给服务器的参数,服务器通过解析请求头获取参数内容。通常会存放本次请求的基本设置,以帮助服务器理解并解析本次请求的body体。 参数形式如:

Accept-Language : zh-CN,zh;q=0.8,zh-TW;q=0.5,en-US;q=0.3,en;q=0.2

在我们的SpringBoot中,通过@RequestHeader注解可以获取到。
Spring Boot 读取http headers内容

2、路径参数path

路径参数顾名思义,本次请求的资源路径,紧跟请求域名的后面,服务器通过解析路径参数获取资源位置。路径参数是用/分隔的一系列字符串,其意义在于对服务器资源进行统一定位,如:
在这里插入图片描述

SpringBoot接收:
@PathVariabel注解的形参名字要与路径参数形参名字相等
不相等就用 value值来与路径参数名字相等。
在这里插入图片描述

3、查询参数query

Query代表请求的参数,URL以?key=value的形式呈现,例如:
http://localhost:8080/api/v1/namespaces?pretty=true 中 pretty=true就是query

SpringBoot接收
在这里插入图片描述

get请求只能传query参数,query参数都是拼接在请求地址上的。

4、请求体参数body

请求体参数顾名思义,是存放在请求体(在HTTP协议中用于传输客户端向服务器发送的数据的部分)中发送给服务器的参数。请求体参数格式复杂多变,服务器会先根据请求头中的 Content-Type 获取其格式,然后再根据其格式进行解析,常见的格式如下:
在这里插入图片描述

Get请求只能传Query参数,POST可以传Query和Body(常用)两种形式的参数。
Query的值只能是一个字符串,不能传递对象类型的参数,如果参数中涉及到了传递对象,就要选择Body传参,一般json等都是Body传参

SpringBoot接收
使用注解@RequestBody,接收json数据
在这里插入图片描述

关于接收参数三个注解的区别

@RequestBody、@RequestParam、@PathVariable

- 区别

  1. @RequestParam用于接收url地址传参或表单传参
  2. @RequestBody用于接收json数据
  3. @PathVariable用于接收路径参数,使用{参数名称}描述路径参数

- 应用

  1. 后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广
  2. 如果发送非json格式数据,选用@RequestParam接收请求参数
  3. 采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@PathVariable接收请求路径变量,通常用于传递id值

@RequestBody的详细使用
@RequestBody的使用
学习来自
https://juejin.cn/post/7291466545305829376#heading-8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/208735.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SUDS: Scalable Urban Dynamic Scenes

SUDS: Scalable Urban Dynamic Scenes:可扩展的城市动态场景 创新点 1.将场景分解为三个单独的哈希表数据结构,以高效地编码静态、动态和远场辐射场 2.利用无标签的目标信号,包括RGB图像、稀疏LiDAR、现成的自监督2D描述符,以及…

万字解析设计模式之组合模式、亨元模式

一、组合模式 1.1概述 组合模式是一种结构型设计模式,它允许将对象组合成树形结构,以表示“部分-整体”的层次结构。组合模式使得客户端可以一致地对待单个对象和对象组合,从而将复杂的层次结构展现为一个统一的树形结构。 在组合模式中&…

跨越行业边界,CodeMeter护航AI领域安全与合规

在人工智能(AI)技术如ChatGPT的推动下,工业视觉、医疗诊断和智能驾驶等领域正在经历重大变革。这些技术不仅扩大了应用范围,也带来了数据安全、软件授权保护和合规性等新挑战。 AI工业视觉正在推动制造和自动化的快速发展&#x…

图形编辑器开发:自定义光标管理

大家好,我是前端西瓜哥。 今天来讲讲如何在图形编辑器中使用自定义光标,并对光标其进行管理。 编辑器 github 地址: https://github.com/F-star/suika 线上体验: https://blog.fstars.wang/app/suika/ 自定义光标的意义是什么&am…

基于爬行动物算法优化概率神经网络PNN的分类预测 - 附代码

基于爬行动物算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于爬行动物算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于爬行动物优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

Matlab进阶绘图第33期—双曲面图

在《Matlab论文插图绘制模板第56期—曲面图(Surf)》中,我分享过曲面图的绘制模板。 然而,有的时候,需要在一张图上绘制两个及以上的曲面图,且每个曲面图使用不同的配色方案。 在Matlab中,一张…

优先经验回放(prioritized experience replay)

prioritized experience replay 思路 优先经验回放出自ICLR 2016的论文《prioritized experience replay》。 prioritized experience replay的作者们认为,按照一定的优先级来对经验回放池中的样本采样,相比于随机均匀的从经验回放池中采样的效率更高&…

vue3组件化开发页面之渲染函数实现

文章目录 前言一、渲染机制虚拟 DOM渲染管线 二、渲染函数基本用法声明渲染函数Vnodes 必须唯一 三、页面使用渲染函数及组件配置总结如有启发,可点赞收藏哟~ 前言 组件化开发是目前开发的常态 本文记录页面拆分多个不同组件模块,然后再基于渲染函数实现…

const修饰

const 起保护作用,禁止修改。 此时a变为常量,常量不可修改。 const放在*p的左端限制*p,即不能通过修改指针变量(*p)的值来修改p指向空间的内容,但p不受限制。 const放在*的右端限制p,即不能修…

Unity 三维场景的搭建 软件构造实验报告

实验2:仿真系统功能实现 1.实验目的 (1)熟悉在Unity中设置仿真场景; (2)熟悉在Unity中C#语言的使用; (3)熟悉仿真功能的实现。 2.实验内容 新建一个仿真场景&#x…

中职组网络安全 Server-Hun-1.img Server-Hun-2.img

一串密码 smbuser用户和密码登录ssh还是失败提示需要密钥,尝试ftp登录成功 发现密钥存放在.ssh/下,在kali上生成一个密钥,通过上传到.ssh/下,将其替换掉 使用kali生成密钥 登录成功,但是无法拿到root目录下的flag 获取root用户权限…

《QT从基础到进阶·三十七》QWidget实现左侧导航栏效果

NavigationBarPlugin插件类实现了对左侧导航栏的管理,我们可以在导航栏插件中添加界面,并用鼠标点击导航栏能够切换对应的界面。 源码在文章末尾 实现效果如下: NavigationBarPlugin实现的接口如下: class NAVIGATIONBAR_EXP…