问题

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是怎么实现的还有待查看源码。有错误望指正。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐