postman中 form-data、x-www-form-urlencoded、raw、binary的区别
在工作中经常会用postman来模拟客户端请求来调试服务端接口,中间有次和客户端调试的时候发现postman同时传文件和参数服务端都可以收到,而客户端上传文件和参数的时候收不到文件流,所以就找时间弄清楚postman几个表单类型做下记录。
1. form-data
就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。
如图所示:
2. x-www-form-urlencoded
就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对,比如,name=java&age = 23
如图所示:
3. raw
可以上传任意格式的文本,可以上传text、json、xml、html等
如图所示:
4. binary
相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。(日常工作我还没有用到过)
注意用postman测试一下各种类型的Content-Type,看看每一种类型对应的Content-Type是什么,这个关系到springMVC参数注入的取值方式。
如果想了解Content-Type,请参见下面的文章:
Http中Content-Type的详解
Http Header里的Content-Type