网络请求之get/post与传参类型query/body

21,178 阅读2分钟

平时传递的网络参数,无论是 get 还是 post 基本上都是传递一个对象/字典等到服务器,除了换个请求类型,传递参数基本上没有什么区别,实际上是系统或者三方给我们处理的,实际参数处理方式并不相同。

get 方式请求传递的参数最终都会显式地拼接到 URL 后面,例如: ...loginin?username=123&password=123

post 传递的参数实际上是放到了网络请求的 data 段传递的,不显式的暴露在链接上

query 实际上就是 get 请求式的传参方式(post 也可以以这种方式传递),即将参数拼接到URL后面,例如: ...loginin?username=123&password=123

body 参数类型只有 post 可以传递,即传递的参数最终放到了 data 字段上,而不是像 get 一样放到 URL 后面,例如:url:...loginin ,data 段: username 和 password

举个例子:

基础链接:...loginin

URL参数拼接方式:url + ? 参数 = 参数内容 & 参数 = 参数类型 &...

1.请求方式:get

参数: 名称 + 请求类型 + 数据类型

username	query 	string
password	query 	string

实际get请求传递参数 username 和 password

最终的提交的url为 ...loginin?username=123&password=123 无data数据段

2.请求方式:post

参数: 名称 + 请求类型 + 数据类型

username	query	string
password 	query	string

key 		body 	string
id		body	string
			

可以看出 username 和 password 为 get 请求中 query 的类型传递(模仿 get 请求,参考 URL 拼接方式,将参数拼接到 url 后面)

而 key 和 id 为 body 类型,传递的参数都放到 data 端,即和正常 post 传递参数一样,最终传递到data数据段上

最终的提交的 url 为 ...loginin?username=123&password=123 ,data 数据段: key 和 id