postman的几种body的使用介绍

postman,用来模拟发送http请求的工具,里面涉及的请求body有以下几个类型,所以记下,而且也能理解http body的几种格式,分享之。。

form-data

就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;
由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。


内容为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
POST /login HTTP/1.1
Host: 10.170.56.67
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Cache-Control: no-cache
Postman-Token: 9843651a-5bf9-0544-03c1-fcc2a16f484b

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="username"

admin
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="password"

admin123
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="abc"; filename=""
Content-Type:


------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="tttt"; filename=""
Content-Type:


------WebKitFormBoundary7MA4YWxkTrZu0gW--

x-www-form-urlencoded

就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对,并以urlencode为格式

内容为

1
2
3
4
5
6
7
POST /login HTTP/1.1
Host: 10.170.56.67
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: e6887900-a46e-2ff4-8232-de878b75f5fd

username=admin&password=admin123

raw

可以上传任意格式的文本,可以上传text、json、xml、html等

内容为

1
2
3
4
5
6
7
8
9
10
POST /login HTTP/1.1
Host: 10.170.56.67
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 233df0e0-c6d9-98c7-4d7e-736329322683

{
"abc":"cba",
"cba":"abc"
}

从图片和内容对比,可以发现,基本,粘什么,就发什么,不会进行任何转意。

binary

相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。

multipart/form-data与x-www-form-urlencoded区别

  • multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;
  • x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的