首页 文章

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

提问于
浏览
1

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

  • 动词:POST

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

  • 标题:添加 key-value 对 - Content-Type/application/json

  • 正文:选中“form-data”单选按钮并添加 2 个 key-value 对来表示表单输入 - email/someone@gmail.com&age/18

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

想知道 POSTMAN 是不是传递表单数据还是我没有找到正确的位置(即在$request 对象中)。

我也尝试使用'raw'代替'form-data'并传递 JSON,但结果相同。

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

任何帮助解决我面临的问题都非常感谢。我花了差不多一整天的时间来浏览 POSTMAN 文档并在 google 上搜索但没有太大进展。

1 回答

  • 3

    动词:POST

    正确

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

    你可能不应该这样做

    如果您要发出 POST 请求,请将它们放在 body 选项卡上的“表单数据”中。 (POST 请求可能包含查询字符串数据,但这很不寻常)。

    标题:添加 key-value 对 - Content-Type/application/json

    绝对不要这样做.

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

    如果你不覆盖它,邮递员会自动设置正确的 content-type。

    正文:选中“form-data”单选按钮并添加 2 个 key-value 对来表示表单输入 - email/someone@gmail.com&age/18

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

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

    PHP 没有本机支持使用 JSON 编码的消息体解析 HTTP 请求,因此它看到您声称您正在发送 JSON 并且什么都不做。

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

    我也尝试使用'raw'代替'form-data'并传递 JSON,但结果相同。

    你必须手动解码 JSON 编码的请求主体

相关问题