POST 请求中 multipart/form-data、 application/x-www-form-urlencoded 的区别

以 Postman 为工具来看一下这两个编码类型的数据格式,假设我们需要传输的数据为

{
    "name": "test",
    "age": 18
}
  • multipart/form-data
    这里写图片描述

我们上传文件的时候通常会选择这个格式,可以看到 Content-Type 一行有个 boundary,这个 boundary 是一个分隔符,可以把它看成 get 请求中的 & ,这个分隔符通常是浏览器生成。由于这个分隔符的存在,我们上传的每个文件数据都会被分隔开,所以可以上传多个文件。

  • application/x-www-form-urlencoded

这里写图片描述

可以看到键值对被 & 分隔

浏览器的原生 <form> 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。所以如果我们要使用表单上传文件,必须让 <form> 表单的 enctype 等于 multipart/form-data。

对于一些如 application/json、text/plain 等这些编码,浏览器会原封不动的将数据提交,在 Postman 中的选项是 raw。

猜你喜欢

转载自blog.csdn.net/zsensei/article/details/80043764