关于application/x-www-form-urlencoded跟application/json请求的区别

当你的java方法是这样定义的

@PostMapping("/rePushMedicalRecord") public String rePushMedicalRecord(@RequestParam("topicId") String topicId){

}

参数是@RequestParam接收,则请求时需要用application/x-www-form-urlencoded请求

如果是@RequestBody 则需要定义入参对象,从字段中获取数值

@PostMapping("/rePushMedicalRecord") public String rePushMedicalRecord(@RequestBody  BodyData bodyData){

dodyData.getTopicId();方式获取数据

}

application/x-www-form-urlencoded 和 application/json 是两种不同的 Content-Type,它们各自有不同的用途和编码方式,用于在 HTTP 请求中发送数据。以下是这两种 Content-Type 的主要区别:

1. application/x-www-form-urlencoded

  • 用途:主要用于发送表单数据,尤其是 HTML 表单数据。
  • 编码方式:数据被编码为键值对(key-value pairs),使用等号 (=) 分隔键和值,使用 & 符号分隔不同的键值对。例如:key1=value1&key2=value2
  • 请求体示例name=John+Doe&age=30&city=New+York
  • 优点:简单、易读,兼容性好(大多数浏览器和服务器都支持)。
  • 缺点:对于复杂的数据结构(如数组、嵌套对象)表示起来较为繁琐,不直观。

2. application/json

  • 用途:用于发送 JSON 格式的数据,通常用于 RESTful API。
  • 编码方式:数据被编码为 JSON 字符串,这是一种轻量级的数据交换格式。
  • 请求体示例{"name": "John Doe", "age": 30, "city": "New York", "hobbies": ["reading", "cinema"]}
  • 优点:能够清晰地表示复杂的数据结构(如数组、嵌套对象),易于阅读和编写。JSON 格式是通用的,并且被各种编程语言和框架广泛支持。
  • 缺点:与 application/x-www-form-urlencoded 相比,可能需要更多的处理逻辑来解析 JSON 数据。

选择哪种 Content-Type?

  • 如果你在发送简单的表单数据,并且只需要键值对,那么 application/x-www-form-urlencoded 可能是一个不错的选择。
  • 如果你在发送复杂的数据结构,或者你的 API 遵循 RESTful 设计原则,那么 application/json 通常是更好的选择。

在 Spring Boot 应用程序中,你可以通过 @RequestBody 注解来接收 application/json 类型的请求体,并通过 @RequestParam@PathVariable 或 @ModelAttribute 等注解来接收 application/x-www-form-urlencoded 类型的请求参数。

@PostMapping("/rePushMedicalRecord1/{id}")
public String rePushMedicalRecord1(@PathVariable("id") String id){}

请求地址可以写成/rePushMedicalRecord1/你的id

 需要寄快递的朋友,这个小程序发快递只要五块钱哦~

 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小池先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值