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

时间:2016-05-17 12:15:02

标签: php json forms laravel-5 postman

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

  1. 动词:POST
  2. 参数:添加了2个参数(均显示在网址中)
  3. 标题:添加了键值对 - Content-Type / application / json
  4. 正文:选中“表单数据”单选按钮并添加2个键值对来表示表单输入 - email / someone@gmail.com&年龄/ 18
  5. 当我提交请求并在我的服务器代码(PHP)中打印$ request对象时,我只获取params(步骤#2)而不是表单字段。

    想知道POSTMAN是否没有传递表单数据,或者我没有查看正确的位置(即在$ request对象中)。

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

    我尝试从Web应用程序调用相同的API,我在$ request对象中获得了正确的表单数据值。

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

1 个答案:

答案 0 :(得分:3)

  

动词:POST

正确

  

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

您可能不应该这样做

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

  

标题:添加键值对 - Content-Type / application / json

绝对不要这样做。

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

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

  

正文:已选择'表单数据'单选按钮并添加了2个键值对来表示表单输入 - email / someone@gmail.com&年龄/ 18

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

  

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

PHP没有原生支持使用JSON编码的邮件正文解析HTTP请求,因此它会看到您声称您正在发送JSON并且什么都不做。

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

  

我也尝试过' raw'而不是' form-data'并传递了一个JSON,但结果相同。

你必须manually decode JSON encoded request bodies

相关问题