1. 概述
Postman 提供了多种方式与 API 或服务器请求进行交互,使用不同类型的body参数。这些代表了通过HTTP请求向API发送数据的不同方式。
在这篇教程中,我们将探讨在请求体中使用form-data
、x-www-form-urlencoded
和raw
的区别。
2. form-data
form-data
表示从网站表单发送到API的数据,作为multipart/form-data
的一部分。Postman 中的form-data
选项模拟了在网站上填写表单并提交的过程。我们可以编辑表单数据,并通过转换键值编辑器设置不同的键值对。
此外,它还可以用于将文件附加到键上。但请注意,由于使用HTML5,文件不会保存在历史或集合中。因此,在发送请求体时必须重新选择文件。此外,Postman 不支持同时上传多个文件及其内容类型。
值得注意的是,Postman 会保留文件路径,以便在后续使用中重复发送相同的文件到服务器。这对于运行包含多个请求以上传文件的集合非常有帮助。
让我们看看在Postman中使用form-data
是什么样子:
3. x-www-form-urlencoded
URL编码的数据将编码后的数据发送到服务器,并使用与URL参数相同的编码方式。要使用它,我们需要在请求体的x-www-form-urlencoded
选项卡中选择。我们需要输入发送请求体到服务器的键值对,Postman会在发送前对所需数据进行编码。Postman 会同时对键和值进行编码。
注意,它不适用于编码文件,因此需要手动处理。但它只能用于编码请求体数据或URL参数。
这也是默认的内容类型。使用此内容类型提交的所有表单遵循以下编码模式:
- 控制名称和值被转义,所有空格字符将替换为加号符号,保留字符遵循RFC 17.38规范。
- 使用等号
=
分隔键和值,而键值对之间使用&
进行分隔。
让我们看看Postman中的x-www-form-urlencoded
选项卡:
4. raw
顾名思义,raw
数据可以包含任何内容。Postman 不会触碰raw
字符串或对其进行任何类型的修改。添加到raw
编辑器的字符串保持不变,除了替换定义的环境变量。这个编辑器允许我们设置Postman支持的不同格式样式,以及与raw
主体一起发送所需的正确头部。支持的类型包括:
- 文本
- JavaScript
- JSON
- HTML
- XML
我们还可以手动设置这些内容类型到我们的请求体:
5. form-data
、x-www-form-urlencoded
和raw
之间的区别
我们可以根据万维网联盟(W3C)委员会定义的不同数据内容类型发送数据。它们为在网络层传输数据定义了多种格式,包括form-data
、x-www-form-urlencoded
和raw
数据。默认情况下,我们可以通过使用x-www-form-urlencoded
格式以简单的文本/ASCII格式发送数据。
然而,x-www-form-urlencoded
数据类型有一个数据限制。因此,对于发送大型二进制或非ASCII文本到服务器,我们可以使用form-data
。
raw
数据类型发送任何纯文本或JSON到服务器,正如其名称所示。它支持多种内容类型,与form-data
和其他数据类型不同,Postman 将直接发送原始数据,不做任何修改。
我们可以使用raw
数据类型在请求体中发送任何类型的数据,包括在服务器端执行的JavaScript函数。我们可以在JavaScript选项下发送脚本。raw
数据类型还支持标记语言,如HTML和XML,这在前端没有逻辑并且需要消费整个HTML/XML页面时很有用。
6. 总结
在这篇文章中,我们探讨了Postman支持的一些请求体数据类型。
我们也概述了Postman中form-data
、x-www-form-urlencoded
和raw
之间的差异。然而,我们只是对请求有了初步了解。如果你想深入理解这些请求体类型,可以查阅Postman在线文档。