网站交互行为搜索引擎名词解释
详解Post请求
- 前言
- 常见的post提交数据类型有四种:
- 第一种:application/json
- 第二种:application/x-www-form-urlencoded
- 第三种:multipart/form-data:这一种是表单格式的,数据类型如下
- 第四种:text/xml:这种直接传的xml格式
- json格式
- x-www-form-urlencoded
- WebFrom
- 总结:
- 如果对软件测试、接口测试、自动化测试、持续集成、面试经验。感兴趣可以进到893694563,群内会有不定期的分享测试资料。还会有技术大牛,业内同行一起交流技术
前言
上一篇讲过get请求的参数都在url里,post的请求相对于get请求多了个body部分,本篇就详细讲解下body部分参数的几种形式。
注意:post请求的参数可以放在url,也可以放在body,也可以同时放在url和body,当然post请求也可以不带参数。
只是一般来说,post请求的参数习惯放到body部分
常见的post提交数据类型有四种:
第一种:application/json
- 这是最常见的json格式,也是非常友好的深受小伙伴喜欢的一种,如下
{“input1”:“xxx”,“input2”:“ooo”,“remember”:false}
第二种:application/x-www-form-urlencoded
- 浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数
input1=xxx&input2=ooo&remember=false
第三种:multipart/form-data:这一种是表单格式的,数据类型如下
------WebKitFormBoundaryrGKCBY7qhFd3TrwA Content-Disposition: form-data; name="text"title------WebKitFormBoundaryrGKCBY7qhFd3TrwA Content-Disposition: form-data; name=“file”; filename=“chrome.png” Content-Type: image/png PNG … content of chrome.png …------WebKitFormBoundaryrGKCBY7qhFd3TrwA–
第四种:text/xml:这种直接传的xml格式
<!--?xml version="1.0"?-->
<methodcall>
<methodname>examples.getStateName</methodname>
<params>
<param>
<value><i4>41</i4></value>
</params>
</methodcall>
json格式
- 打开博客园的登录页面,输入账号密码后抓包,查看post提交数据,点开Raw查看整个请求的原始数据
- 前面讲过post的请求多一个body部分,上图红色区域就是博客园登录接口的body部分,很明显这种格式是前面讲到的第一种json格式
- 查看json格式的树状结构,更友好,可以点开JSON菜单项
4.查看这里的json数据,很明显传了三个参数:
- input1:这个是登录的账号参数(加密过)
- input2:这个是登录的密码参数(加密过)
- remember:这个是登录页面的勾选是否记住密码的选项,False是不记住,True是记住
x-www-form-urlencoded
- 登录博客园后,打开新随笔,随便写一个标题和一个正文后保存,抓包数据如下
- 如上图的这种格式,很明显就属于第二种了,这种类型的数据查看,在WebFrom里面查看了
- 上面红色框框的Query String是url里面的参数,下面红色框框的body部分就是这次post提交的body参数部分了。
WebFrom
1.为什么登录请求的WebFrom的body部分为空呢?
2.看上图红色框框的显示:这里只支持application/x-www-form-urlencoded这种格式的body参数,也就是说json格式的,需要在JOSN这一栏查看了。
总结:
- form-data
表单传递,对应multipart/form-data, - x-www-form-urlencoded
默认传递,对应application/x-www-from-urlencoded,最终会转换成键值对,例如name=zhangsan&age=23 - raw
可以上传任意格式的文本,可以上传text、json、xml、html等 - binary
二进制传递application/octet-stream,上传二进制数据,一次只能传递一个文件
multipart/form-data与x-www-form-urlencoded区别
multipart/form-data:既能上传数据键值对,又能上传文件
x-www-form-urlencoded:只能上传键值对