Forms 邮递员:表单数据、x-www-form-urlencoded和原始数据之间有什么区别

Forms 邮递员:表单数据、x-www-form-urlencoded和原始数据之间有什么区别,forms,web-services,rest,postman,Forms,Web Services,Rest,Postman,我正在使用Postman Chrome扩展来测试web服务 有三个选项可用于数据输入 我猜raw是用来发送JSON的 另外两种,表单数据和x-www-form-urlencoded之间有什么区别?这是W3C定义的不同表单内容类型。 如果要发送简单的文本/ASCII数据,则x-www-form-urlencoded将起作用。这是默认设置 但是,如果必须发送非ASCII文本或大型二进制数据,则表单数据适用于此 如果要发送纯文本、JSON或任何其他类型的字符串,可以使用Raw。顾名思义,邮递员会按原样

我正在使用Postman Chrome扩展来测试web服务

有三个选项可用于数据输入

我猜
raw
是用来发送JSON的


另外两种,
表单数据
x-www-form-urlencoded
之间有什么区别?

这是W3C定义的不同表单内容类型。 如果要发送简单的文本/ASCII数据,则x-www-form-urlencoded将起作用。这是默认设置

但是,如果必须发送非ASCII文本或大型二进制数据,则表单数据适用于此

如果要发送纯文本、JSON或任何其他类型的字符串,可以使用Raw。顾名思义,邮递员会按原样发送原始字符串数据,无需修改。可以使用下拉列表中的内容类型标题设置要发送的数据类型

二进制文件可用于向请求附加非文本数据,例如视频/音频文件、图像或任何其他二进制数据文件

请参阅此链接以进一步阅读: 这更好地解释了:

请求主体

在构造请求时,您需要经常处理请求体编辑器。Postman允许您发送几乎任何类型的HTTP请求(如果您无法发送某些内容,请告诉我们!)。主体编辑器分为4个区域,并根据主体类型具有不同的控件

表单数据

多部分/表单数据是web表单用于传输数据的默认编码。这模拟了在网站上填写表单并提交表单。表单数据编辑器允许您为数据设置键/值对(使用键值编辑器)。您也可以将文件附加到密钥。请注意,由于HTML5规范的限制,文件不会存储在历史记录或集合中。您必须在发送请求时再次选择该文件

URL编码

此编码与URL参数中使用的编码相同。您只需输入键/值对,邮递员就会正确地对键和值进行编码。请注意,您不能通过此编码模式上载文件。表单数据和urlencoded之间可能存在一些混淆,因此请确保首先检查您的API

生的

原始请求可以包含任何内容。除了替换环境变量外,Postman不会触摸在原始编辑器中输入的字符串。您在文本区域中放置的任何内容都会随请求一起发送。原始编辑器允许您设置格式类型以及应随原始正文一起发送的正确标题。您也可以手动设置内容类型标题。通常,您将在此处发送XML或JSON数据

二进制的

二进制数据允许您发送无法在邮递员中输入的内容。例如,图像、音频或视频文件。您也可以发送文本文件。正如前面在表单数据部分中提到的,如果要通过历史记录或集合加载请求,则必须重新附加文件

更新

正如所指出的,say urlencoded是表单的默认编码类型

这些属性的默认无效值为application/x-www-form-urlencoded状态。enctype属性缺少的默认值也是application/x-www-form-urlencoded状态


多部分/表单数据

注意。有关文件上载的其他信息,包括向后兼容性问题、“多部分/表单数据”与其他内容类型之间的关系、性能问题等,请咨询

有关表单安全问题的信息,请参阅附录

内容类型“application/x-www-form-urlencoded”在发送大量二进制数据或包含非ASCII字符的文本时效率低下。内容类型“多部分/表单数据”应用于提交包含文件、非ASCII数据和二进制数据的表单

内容类型“多部分/表单数据”遵循中概述的所有多部分MIME数据流的规则。“多部分/表格数据”的定义可在[IANA]注册表中找到

“多部分/表单数据”消息包含一系列部分,每个部分表示一个成功的控件。零件将按照文档流中相应控件出现的相同顺序发送到processing agent。零件边界不应出现在任何数据中;如何做到这一点超出了本规范的范围

与所有多部分MIME类型一样,每个部分都有一个可选的“Content Type”头,默认为“text/plain”。用户代理应提供“内容类型”标题,并附带“字符集”参数

应用程序/x-www-form-urlencoded

这是默认的内容类型。使用此内容类型提交的表格必须按以下方式编码:

控件名称和值被转义。空格字符替换为
+',然后按照[RFC1738]第2.2节:非字母数字字符替换为
%HH',一个百分号和两个十六进制数字,表示字符的ASCII码。换行符表示为“CR LF”对(即,
%0D%0A”)。
控件名称/值按它们在文档中的显示顺序列出。名称与值之间用
='分隔,名称/值对之间用`&'分隔

application/x-www-form-urlencoded
发送到服务器的HTTP消息主体本质上是一个巨大的查询字符串——名称/值对用符号(&)分隔,名称与值用等号(=)分隔。这方面的一个例子是:

MyVariableOne=ValueOne&MyVariableTwo=ValueTwo
内容类型“application/x-www-form-urlencoded”在发送大型qua时效率低下
content-type: multipart/form-data; boundary=--------------------------590299136414163472038474
key1=value1key2=value2
Content-Type: application/x-www-form-urlencoded
key1=value1&key2=value2
Content-Type: text/plain
This is some text.
Content-Type: application/json
{"key1":"value1","key2":"value2"}