常见的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格式

  1. 打开博客园的登录页面,输入账号密码后抓包,查看post提交数据,点开Raw查看整个请求的原始数据
    在这里插入图片描述

 

  1. 前面讲过post的请求多一个body部分,上图红色区域就是博客园登录接口的body部分,很明显这种格式是前面讲到的第一种json格式
  2. 查看json格式的树状结构,更友好,可以点开JSON菜单项
    在这里插入图片描述
  1. 4.查看这里的json数据,很明显传了三个参数:
  • input1:这个是登录的账号参数(加密过)
  • input2:这个是登录的密码参数(加密过)
  • remember:这个是登录页面的勾选是否记住密码的选项,False是不记住,True是记住

x-www-form-urlencoded

  1. 登录博客园后,打开新随笔,随便写一个标题和一个正文后保存,抓包数据如下
    在这里插入图片描述

如上图的这种格式,很明显就属于第二种了,这种类型的数据查看,在WebFrom里面查看了
在这里插入图片描述 

  1. 上面红色框框的Query String是url里面的参数,下面红色框框的body部分就是这次post提交的body参数部分了。

WebFrom

1.为什么登录请求的WebFrom的body部分为空呢?
在这里插入图片描述

看上图红色框框的显示:这里只支持application/x-www-form-urlencoded这种格式的body参数,也就是说json格式的,需要在JOSN这一栏查看了。 

 

总结:

  1. form-data
    表单传递,对应multipart/form-data,
  2. x-www-form-urlencoded
    默认传递,对应application/x-www-from-urlencoded,最终会转换成键值对,例如name=zhangsan&age=23
  3. raw
    可以上传任意格式的文本,可以上传text、json、xml、html等
  4. binary
    二进制传递application/octet-stream,上传二进制数据,一次只能传递一个文件
    multipart/form-data与x-www-form-urlencoded区别
    multipart/form-data:既能上传数据键值对,又能上传文件
    x-www-form-urlencoded:只能上传键值对

 

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐