post传输application/json 和 application/x-www-form-urlencoded 区别

16 篇文章 0 订阅

问题

1、通过apache.HttpClient向body里面加属性怎么没有对方 没有解析出来(从header里面拿)
2、表单传输不能用 @RequestBody 接收数据
3、get方法的入参通过 @RequestParam 来获取值

使用工具

抓包工具 wireshrak => 本地测试使用 Adapter for loopback traffic capture

application/x-www-form-urlencoded

请求参数本质是在url后通过 & 拼接,例如 name=yichen&age=18
数据存储位置在 http(Hypertext Transfer Protocol),请求头和请求体都在这里

在这里插入图片描述

application/json

参数参数体本质是一个json对象,例如{"name":"yichen"}
请求头存储在 http(Hypertext Transfer Protocol),请求体存储在 JavaScript Object Notation(http后)

在这里插入图片描述
在这里插入图片描述

总结

前面的3个问题都是因为数据存放的位置不同。2可能还有前置判断逻辑
@RequestParam获取URI中的数据
@RequestHeader获取Hypertext Transfer Protocol中的数据
@RequestBody获取外部JavaScript Object中的数据

注意

以上为我从数据传输方向的分析,具体springboot是怎么实现的还有待查看源码。有错误望指正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值