Postman中"form-data"与"multipart/form-data"的关系
简单来说,这只是Postman界面标签与实际HTTP协议中的术语之间的差异。
解释
-
Postman UI中的选项名称:
- Postman在Body选项卡中提供了几个选项:
none
,form-data
,x-www-form-urlencoded
,raw
,binary
,GraphQL
- 这里"form-data"是Postman界面中的选项名称,用于简化用户操作
- Postman在Body选项卡中提供了几个选项:
-
实际HTTP请求内容类型:
- 当您在Postman中选择"form-data"选项时,Postman会自动将请求的Content-Type头设置为
multipart/form-data; boundary=----WebKitFormBoundary...
- 您可以在发送请求后,查看Headers标签中自动添加的这个头部确认
- 当您在Postman中选择"form-data"选项时,Postman会自动将请求的Content-Type头设置为
-
它们实际上是相同的:
- "form-data"只是Postman界面中的简化标签
- 选择这个选项后,Postman会生成一个标准的multipart/form-data请求
- 您不需要手动设置Content-Type,Postman会自动处理
所以,虽然您在Postman界面中看到的是"form-data"选项,但实际发送的HTTP请求是标准的"multipart/form-data"格式,完全符合您API规范中的要求。
通过选择"form-data"选项并添加字段和文件,您已经正确设置了multipart/form-data请求。这就是为什么Postman是测试此类API的理想工具,因为它简化了这个过程但仍然保持HTTP规范的兼容性。