请求头Content-Type

这是我第9篇。

Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码。在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。它用来告诉服务端如何处理请求的数据,以决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。

你们在使用Postman时,搞清楚下面这几个是干啥的吗


请求头Content-Type_第1张图片

接下来介绍4个常用的类型。

一. multipart/form-data

上图的form-data就是指的multipart/form-data
这是一个多部分多媒体类型,它是一个常见的 POST 数据提交的方式,它会生成了一个 boundary 用于分割不同的字段。它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来说明文件类型。
注意,当使用表单上传文件时,必须让 form 的 enctype 等于这个值。

二. application/x-www-form-urlencoded

上图的x-www-form-urlencoded就是指的application/x-www-form-urlencoded
一般用于表单提交,会将请求参数用key1=val1&key2=val2的方式进行组织和编码,key 和 val 都进行了 URL 转码,并放到请求实体里面(注意如果是中文或特殊字符如"/"、","、“:" 等会自动进行URL转码)。

三. application/json

最常用的。使用这个类型,提交的是序列化后的 JSON 字符串,服务端/客户端会按json格式解析数据

请求头Content-Type_第2张图片

上图的的 raw,表示可上传任意格式的文本,可以上传text、json、xml、html等各种文本类型,一般用来选择 application/json传入json格式的参数。

四. text/xml

即传递XML格式,在以前比较常用,不接触老的项目应该用不到。

五. 一些补充

1.application/octet-stream

上图binary指的是application/octet-stream
Content-Type为application/octet-stream时,只可上传二进制数据,通常用来上传文件,没有键值,一次只能上传一个文件。

2.multipart/form-data和application/x-www-form-urlencoded的区别
  • multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息。
  • application/x-www-form-urlencoded:只能上传键值对,且键值对都是间隔分开。
3.Content-Type设置建议
  • restful接口(json格式),一般将Content-Type设置为application/json; charset=UTF-8
  • 文件上传,Content-Type设置为multipart/form-data
  • 普通表单提交,Content-Type设置为application/x-www-form-urlencoded

你可能感兴趣的:(请求头Content-Type)