如何模拟通过POSTMAN在POST API调用中发送表单数据


How to simulate sending form data in a POST API Call through POSTMAN

我正在尝试使用POSTMAN模拟来自移动应用程序的POST调用。我做了以下事情:

  1. 动词:POST
  2. 参数:添加了2个参数(均显示在URL中)
  3. 标题:添加键值对-内容类型/application/json
  4. 正文:选择"表单数据"单选按钮并添加2个键值对来表示表单输入-电子邮件/someone@gmail.com&年龄/18

当我提交请求时,在我的服务器代码(PHP)中,我打印$request对象,我只得到params(步骤#2),而没有得到表单字段。

想知道POSTMAN是否没有传递表单数据,或者我没有看对地方(即$request对象中)。

我还尝试使用"原始"而不是"表单数据",并传递了一个JSON,但结果相同。

我尝试从web应用程序调用相同的API,我在$request对象中获得了正确的form-data值

我们非常感谢为解决我面临的问题所提供的任何帮助。我花了几乎一整天的时间浏览POSTMAN文档并在谷歌上搜索,但进展不大。

动词:POST

纠正

参数:添加了2个参数(均显示在URL中)

你可能不应该那样做

如果您正在进行POST请求,请将它们放在body选项卡上的"表单数据"中。(POST请求可能包含查询字符串数据,但这是不寻常的)。

标题:添加的键值对-内容类型/application/json

绝对不要那样做

您发送的是表单编码的数据,而不是JSON。

如果你不覆盖,邮差会自动设置正确的内容类型。

正文:选择"表单数据"单选按钮并添加2个键值对来表示表单输入-电子邮件/someone@gmail.com&年龄/18

可能是正确的。表单的默认编码是x-www-form-urlencoded,但PHP可以同时处理这两种编码。

我只得到params(步骤#2),而不是表单字段。

PHP本机不支持使用JSON编码的消息体解析HTTP请求,因此它可以看到您发送JSON的声明,并且什么也不做。

如果它确实支持JSON,那么它将尝试将表单编码的数据解析为JSON并失败。

我还尝试使用"原始"而不是"表单数据",并传递了一个JSON,但结果相同。

您必须手动解码JSON编码的请求体。