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

标签 php json forms laravel-5 postman

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

  1. 动词 : POST
  2. Params:添加了 2 个参数(都显示在 URL 中)
  3. Header:添加键值对 - Content-Type/application/json
  4. 正文:选择“表单数据”单选按钮并添加 2 个键值对来表示表单输入 - email/someone@gmail.com & age/18

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

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

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

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

非常感谢任何帮助解决我面临的问题的帮助。我花了将近一整天的时间浏览 POSTMAN 文档并在 google 上进行搜索,但进展不大。

最佳答案

Verb : POST

正确

Params: added 2 params (both show up in the URL)

你可能不应该那样做

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

Header: added key-value pair - Content-Type / application/json

绝对不要那样做。

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

如果您不覆盖它,Postman 将自动设置正确的内容类型。

Body: selected 'form-data' radio button and added 2 key-value pairs to represent the form input - email / someone@gmail.com & age / 18

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

I only get the params (step #2) and not the form field.

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

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

I also tried with 'raw' instead of 'form-data' and passed a JSON, but same result.

你必须 manually decode JSON encoded request bodies .

关于php - 如何通过 POSTMAN 模拟在 POST API 调用中发送表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275907/

相关文章:

c# - 从 XML 文档创建的 Json 反序列化到 POCO 不适用于数组

javascript - 匹配整个文件的正则表达式

php - 全局 PHP 变量在同一文件内的函数内返回 NULL

PHP $_FILES 多文件上传问题

php - 在 PHP 中检索用户正确 IP 地址的最准确方法是什么?

php - 转义单引号并用引号保存到数据库

php - 更新表格,我做错了什么?

PHP - 函数内的函数。是好是坏?

javascript - 在不提交表单的情况下触发自动完成

javascript - 设置测验模块的时间限制