常见的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部分为空呢?
看上图红色框框的显示:这里只支持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:只能上传键值对
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取