http请求头和请求体相关设置

body常见的四种数据格式

application/x-www-form-urlencoded
浏览器的原生form表单,如果不设置 Content-Type 属性,则默认以 application/x-www-form-urlencoded 方式传输数据


multipart/form-data
使用表单上传文件时,必须让 表单的 Content-Type 等于 multipart/form-data。

application/json
也是现在用得比较多的一种方式JSON字符串,支持结构化的数据


ext/xml
一般用于传输xml格式的数据,这种数据格式相比于json稍微复杂,臃肿,但还常用来作为配置文件。

在 Postman 的请求体中有这样四种格式

  1. form-data,x-www-from-urlencoded,raw,binary
form-data 就是 Http 协议中的 multipart/form-data,表示以表单形式提交,
它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。

Content-Type 字段的值为 multipart/form-data,并且使用 boundary 作为边界来划分每对 key-value 键值对
在 Postman 中传输文件,在 Postman 选择 Body 的格式为 form-data,输入 Key 的时候选择【File】即可上传文件

  1. x-www-from-urlencoded
application/x-www-from-urlencoded 会将表单内的数据转换为键值对,比如 name=oneby&hobby=coding
Content-Type 字段的值为 application/x-www-form-urlencoded,表单提交的参数以 key-value 键值对的形式被封装到请求体中

  1. raw
    可以上传任意格式的文本
    选择 text,则请求头是:text/plain
    选择 javascript,则请求头是:application/javascript
    选择 json,则请求头是:application/json (如果想以 json 格式传参,就用 raw+json 就行了)
    选择 html,则请求头是:text/html
    选择 application/xml,则请求头是:application/xml

Content-Type 字段的值为 application/json,请求体内容就是我们填入的 json 字符串
  1. binary
binary 通常用来上传文件,由于没有键值,所以,一次只能上传一个文件(一般用的不多)

Content-Type 字段的值为 application/json,只有传输一个文件,因此请求体内容就是文件内容

请求头中 Content-Type 常见类型;

1. application/x-www-form-urlencoded
    该值是 Form 默认的编码方式,使用该值时,提交表单时内容必须经过如下规则编码:
    (1). 空格转换为 “+” 号;非字母数字的其它字符转换为类似于“%E0”的两位 16 进制表示的 ASCII 码;换行符被转换为“CR LF”;
    (2). 数据项名称和数据值以“=”号分割,数据项与数据项之间以“&”分割;

2. multipart/form-data
    对于二进制文件或者非 ASCII 字符的传输,application/x-www-form-urlencoded 是低效的。
    对于包含文件、二进制数据、非 ASCII 字符的内容,应该使用 multipart/form-data。 
    multipart/form-data 的请求体包含多个部分,需要通过 boundary 字符分割。

3. application/json
    application/json 作为响应头比较常见,目前也流行在 POST 请求中使用,以序列化的 JSON 字符串形式传输

4. application/octet-stream
    用于传输二进制数据。可用于上传文件的场景。在 Postman 中,还可以看到 "binary" 这一类型,指的就是一些二进制文件类型

    就像对于text文件类型若没有特定的子类型(subtype),就使用 text/plain。类似的,二进制文件没有特定或已知的 subtype,就使用 application/octet-stream,这是应用程序文件的默认值,一般很少直接使用 。

    对于 application/octet-stream,只能提交二进制,而且只能提交一个二进制,如果提交文件的话,只能提交一个文件,后台接收参数只能有一个,而且只能是流(或者字节数组)

文本:text/plain、text/html、text/css、text/javascript、text/xml
图片:image/gif、image/png、image/jpeg
视频:video/webm、video/ogg
音频:audio/midi、audio/mpeg、audio/webm、audio/ogg、audio/wav
二进制:application/octet-stream、application/pdf、application/json


什么是Content-Type

要知道什么是Content-Type,首先要了解什么是Internet Media Type。Internet Media Type即互联网媒体类型,也叫做MIME类型,使用两部分标识符来确定一个类型。在HTTP协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息,意思就是说,Content-Type是Internet Media Type在HTTP协议中的别称。

参考[https://www.cnblogs.com/yanggb/p/11684494.html]

posted @ 2022-04-25 21:40  kgwei  阅读(2367)  评论(0编辑  收藏  举报