【接口测试】POST请求提交数据的三种方式及Postman实现

1. 什么是POST请求?

POST请求是HTPP协议中一种常用的请求方法,它的使用场景是向客户端向服务器提交数据,比如登录、注册、添加等场景。另一种常用的请求方法是GET,它的使用场景是向服务器获取数据。

2. POST请求提交数据的常见编码格式

当前,POST请求提交数据的编码方式有三种:

  • application/x-www-form-urlencoded
  • multipart/form-data
  • application/json

2.1 application/x-www-form-urlencoded

这应该是最常见的POST提交数据的方式了。浏览器的原生form表单,如果不设置 enctype属性,那么最终就会默认以application/x-www-form-urlencoded方式提交数据。这种情况下请求头的Content-Type被设置成application/x-www-form-urlencoded,提交的数据按照 key1=value1&key2=value2的方式进行编码,key和value都进行了URL转码。大部分服务端语言都对这种方式有很好的支持。很多时候,我们用Ajax提交数据时,也是使用这种方式。

示例:

什么是URL编码?

是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器。

2.2 multipart/form-data

这也是一个常见的POST数据提交的方式,表示在发送前不对数据进行编码,这种方式一般出现在通过form表单上传文件的场景中,在HTML的form标签中通过设置属性enctype=multipart/form-data来表示通过这种方式提交数据。上面提到的这两种POST数据的方式,都是浏览器原生支持的。各大服务端语言对它也有着良好的支持。

示例:

2.3 application/json

application/json 这个Content-Type作为响应头大家肯定不陌生。实际上,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的JSON字符串。由于JSON规范的流行,除了低版本IE之外的各大浏览器都原生支持JSON.stringify,服务端语言也都有处理JSON的函数,使用JSON不会遇上什么麻烦。

示例:

3. 通过Postman实现三种请求

3.1 application/x-www-form-urlencoded的实现

选择请求方法为POST,填入URL,在Body下选择x-www-form-urlencoded,然后再填入参数和数据,如下:

3.2 multipart/form-data的实现

选择请求方法为POST,填入URL,在Body下选择form-data,然后填入参数和数据,如下:

3.3 application/json的实现

选择请求方法为POST,填入URL,在Body下选择Raw->JSON,然后填入JSON格式的数据,如下:

以上就是通过Postman实现三种不同方式提交数据的Post请求的具体方法。

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
小哈里12 小时前
【知识】从学科到实践:自然・工程・社科・人文|算法・研发・产品・品牌设计
程序人生·算法·产品·设计·工程
铭哥的编程日记13 小时前
从一道 LeetCode Hard 到吃透一类题:加权区间调度「排序 + 二分 + DP」
算法·leetcode·职场和发展
银空飞羽17 小时前
职型求职工具实测:把简历分析、岗位匹配和定向优化串成一条求职链路
人工智能·经验分享·面试·职场和发展·跳槽·求职招聘·创业创新
进化矩阵17 小时前
别把指标当目的:当数字开始反噬你
大数据·人工智能·职场和发展·创业创新
不会就选b19 小时前
算法日常・每日刷题--贪心<11>
算法·leetcode·职场和发展
feeday20 小时前
CPU GPU 压力测试 ChatGPT
压力测试
王清欢Randy21 小时前
AI 时代的 “黑客与画家”
人工智能·程序人生·ai编程·程序员技能
星核0penstarry21 小时前
ToolGrad:把数据生成倒过来,工具调用样本通过率提到 99.8%
人工智能·测试工具·llm·函数调用·数据合成·文本调用
阿明621 小时前
Leetcode: 283. 移动零
算法·leetcode·职场和发展
CoderYanger1 天前
Java EE 进阶:2.3 JavaScript
java·开发语言·前端·javascript·css·职场和发展·java-ee