1. 从零开始:Postman请求参数类型全解析
刚接触API测试那会儿,我最头疼的就是Postman里那一堆参数类型。明明接口文档上写着“传个JSON”,结果在Postman里选了“raw”填进去,服务器却返回个400错误,说格式不对。后来踩过几次坑才明白,Postman的请求参数类型不是随便选的,每种类型背后都对应着HTTP协议里不同的数据组织方式,选错了服务器就“看不懂”你的请求。
简单来说,Postman的请求参数类型主要就四种:none、form-data、x-www-form-urlencoded和raw。这里有个关键点,也是新手最容易犯错的地方:这四种类型是互斥的,一次请求你只能选择其中一种,不能同时使用多个。你可以把它想象成寄快递,你只能选择一种包装方式(比如纸箱、文件袋、木箱),不能把一个东西同时塞进纸箱又套上文件袋。
- none:这个最好理解,就是“没有”。当你发送一个GET请求,或者一个不需要携带任何请求体数据的POST请求时,就选它。比如你只是去查询一下用户列表,不提交任何新信息。
- form-data:这是表单数据,也是最常用、功能最丰富的一种。它特别适合用来模拟网页表单提交,尤其是上传文件。它会将你的数据分成多个部分(part),每个部分都有自己的名称和值,并且可以指定不同的内容类型。比如你上传头像,一个部分是用户名(文本),另一个部分就是图片文件(二进制数据)。在Postman里,它会自动帮你生成一个叫
boundary的分隔符,把各个部分隔开。 - x-www-form-urlencoded:这个名字很长,但意思很简单,就是URL编码的表单数据。这也是网页表单提交的另一种常见格式。它会把你所有的键值对(比如
name=张三&age=20)编码成一种特殊的格式,空格变成+号,中文等特殊字符变成%XX的形式。这种格式不能用于上传文件,只能传输文本键值对。它的数据是连成一串的,不像form-data那样分块。 - raw:原始数据。这是最“自由”的模式,你可以在这里直接输入任何格式的文本数据,比如JSON、XML、HTML甚至纯文本。选择
raw后,最关键的一步是必须在旁边的下拉菜单里选择对应的格式(如JSON、XML、Text等),这决定了Postman会帮你设置正确的Content-Type请求头。很多RESTful API都要求用raw类型来发送JSON数据。
我刚开始总把form-data和x-www-form-urlencoded搞混,觉得都是表单,随便选一个就行。结果在测试一个登录接口时,用form-data成功了,换成x-www-form-urlencoded就失败。后来抓包一看才发现,服务器端代码只解析后一种格式的数据。所以,参数类型的选择,首先得看接口文档要求,或者去观察前端实际发送请求时用的是哪种格式,盲目猜测只会浪费时间。
2. 请求头的门道:Content-Type与Accept的实战抉择
如果说请求参数是你要寄出的“货物”,那么请求头(Header)就是包裹上的“快递单”,它告诉服务器如何处理这个包裹。在Postman里,请求头类型和我们上面说的参数类型是紧密配合的,但它们是两个不同的概念。参数类型决定了数据在“体内”如何组织,而请求头(特别是Content-Type)则大声告诉服务器“我体内是什么格式”。
这里必须重点搞清楚两个最容易混淆的请求头:Content-Type和Accept。我见过不少同事,包括一些工作两三年的开发者,都会用错。
Content-Type:我发给你的是什么 这个头是描述当前你发送的请求体(Body)的数据格式。它是服务器解析你请求数据的唯一依据。如果你发的是JSON,但Content-Type却写成text/plain,服务器可能就当普通文本处理,导致解析失败。
在Postman里,当你选择不同的Body类型时,它通常会自动帮你设置好对应的Content-Type头,这是非常贴心的功能。但有时候我们需要手动修改或确认:
- 选


2066

被折叠的 条评论
为什么被折叠?



