从Content-Type看待GET请求和POST请求

184 阅读1分钟

uni.request

  • 前后端传参只有一个Api是data,发送给后端的也终究也是String

前提前要:GET是把数据存放到查询字符串(Query String) 中,POST请求把数据存放到请求体

对于GET请求,会将数据转化为QueryString ,例如{name:'name',age:18}会转化为name=name&age=18,也就是说Content-type也可以是application/json,将来也可以将application/json作为默认的Content-Type

对于POST方法且header['content-type']为application/json的数据,会进行JSON化

对于POST方法且header['content-type']为application/x-www-form-urlencode的数据会将数据转为Query String

uni.uploadFile

本地资源上传到开发者服务器,客户端发起一个POST,其中Content-Type为multipart/form-data

uni.downloadFile

下载文件资源到本地,客户端发起一个HTTP GET请求

uni.connectSocket

作文双工通信,Content-type最终也是application/json

axios get请求

axios api有对应的param来解决GET请求,当然Content-Type也可以是application/json

axios post请求

axios有对应的data来解决POST请求,默认也是application/json,但是拥有两种变种方式

axios post(1)

原生JS的URLSearchParam解决Content-Type为x-www-form-urlencode的方式,同理也是以查询字符串的方式存放在请求体中

axios post(2)

原生JS的formData解决Content-type为multipart/form-data

ApiPost设置参数与值的方式方法

1-20.png

也就是说header,前端也可以设置,后端也可以获取

GET Query传参

1-21.png

也就是说Content-Type默认值为application/json就可以了,它与GET请求没有关系

POST Body传参

1-22.png

也就是说遇到场景在选择application/json,和form-data以及urlencode,默认以application/json