get和post传参、api测试

parambody 中的 formdata 在 HTTP 请求中有着不同的作用和传输方式。

  1. paramparam 是指请求的参数,也称为查询参数或路径参数。它们通常出现在 URL 中的问号后面(例如 ?key1=value1&key2=value2),或者在 RESTful API 的路径中作为路径参数(例如 /users/{id})。这些参数是通过 URL 进行传输的,可以直接被服务器端解析和获取。在 Spring MVC 或类似的框架中,可以使用 @RequestParam 注解将查询参数绑定到方法的参数上。

  2. bodybody 是指请求体,它是 HTTP 请求中的一部分,用于传输请求的主体数据。请求体通常用于传递复杂的结构化数据,例如 JSON、XML 或二进制数据。在请求体中,数据可以使用不同的编码方式进行传输,如 formdatax-www-form-urlencoded、JSON 等。在 Spring MVC 或类似的框架中,可以使用 @RequestBody 注解将请求体数据绑定到方法的参数上。

  3. formdataformdata 是一种多部分表单数据编码方式,适用于上传文件或包含二进制数据的表单提交。它将每个字段和其对应的值组合成一个独立的部分(part),每个部分都有自己的 Content-Type,并且可以包含二进制数据。这种编码方式常用于文件上传和包含大量文本或二进制数据的表单提交。

总结来说,param 是指请求的查询参数或路径参数,通过 URL 进行传输,而 body 是请求的主体数据,用于传输结构化的数据。formdata 是一种编码方式,适用于表单提交,特别是包含文件上传或二进制数据的情况。

如果在方法参数上不添加 @RequestParam 或 @RequestBody 注解,那么默认情况下,Spring MVC 或类似的框架将会根据以下规则来解析请求参数:

对于 GET 请求,方法参数名称会与请求的查询参数进行匹配。例如,如果请求的 URL 是 /example?paramName=value,那么方法参数中的名称为 paramName 的参数会自动与查询参数进行匹配,并将其值绑定到方法参数上。

对于 POST 请求,框架默认将请求体解析为 application/x-www-form-urlencoded 编码格式。在这种情况下,方法参数名称会与请求体中的表单字段进行匹配。例如,如果请求体中包含字段 paramName=value,那么方法参数中的名称为 paramName 的参数会与该字段进行匹配,并将其值绑定到方法参数上。

在Spring框架中,@RequestParam和GET方法以及@RequestBody和POST方法是常用的组合,但并不是一定要配对使用的。

1、@PathVariable 拼接到url上
@PathVariable(“buyDemandId”) Long buyDemandId
@PathVariable主要作用:映射URL绑定的占位符
在这里插入图片描述

2、get 传对象
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3、get 传字符串
在这里插入图片描述

在这里插入图片描述
但是如果不加@RequestParam的话,用body中的formdata也可以测试成功
在这里插入图片描述
在这里插入图片描述

是因为,当你使用body中的formdata进行测试时,如果在请求的URL中包含了查询参数,Spring框架仍然可以通过@RequestParam注解从URL中提取参数值,并将其绑定到方法参数上。这是因为@RequestParam注解的作用是从请求的URL中获取参数值,而不仅仅限于特定的请求方式或请求体类型。

因此,无论你使用body中的formdata还是使用URL中的查询参数,只要参数名匹配,并且请求到达了/example路径,Spring框架都能正确地提取参数值并将其传递给方法。

4、post 传字段
a、加@RequestBody,常用
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在请求体中,数据可以使用不同的编码方式进行传输,如 formdatax-www-form-urlencoded、JSON 等。所以上边的这种不可以用formdata


b、但是如果不加@RequestBody,对于 POST 请求,框架默认将请求体解析为 application/x-www-form-urlencoded 编码格式。在这种情况下,方法参数名称会与请求体中的表单字段进行匹配。例如,如果请求体中包含字段 paramName=value,那么方法参数中的名称为 paramName 的参数会与该字段进行匹配,并将其值绑定到方法参数上。
在这里插入图片描述

在这里插入图片描述

c、post也是可以用RequestParam传,但是不常用,不建议用
在这里插入图片描述
当你在使用@PostMapping标注的方法上使用@RequestParam注解时,它将尝试从请求的URL中获取指定的参数值,并将其绑定到方法参数上。这与@GetMapping的行为相同。

关于测试时使用body中的formdata和Params都可以成功的问题,可能是因为浏览器或测试工具的行为。在常规的HTTP请求中,@RequestParam通常用于从URL中获取查询参数,而不是从请求体中获取参数。但是,一些浏览器或测试工具可能会将formdata或Params中的参数同时包括在URL和请求体中,这样@RequestParam就能从URL中获取参数值。

虽然这种行为可能会在某些情况下工作,但不建议依赖这种行为。根据HTTP协议的规范,@RequestParam应该用于从URL中获取查询参数,而@RequestBody应该用于从请求体中获取参数值。

因此,为了遵循最佳实践和提高代码的可读性,建议在使用@RequestParam时将参数放在URL中,而将在请求体中传递复杂或大量数据时使用@RequestBody注解。
在这里插入图片描述

5、post 传文件
在这里插入图片描述

在这里插入图片描述

6、post 传数组
在这里插入图片描述
在这里插入图片描述

7、post 请求体 传字段
在这里插入图片描述
在这里插入图片描述

8、post 请求体 传对象
在这里插入图片描述

在这里插入图片描述
map?

后端如果需要用的字段比较少的话,就不用去创建一个实体了,直接可以用map去接收。map接收过来的字符串也是KV形式的,就是json形式。

有道云笔记
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠檬气泡水~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值